Pytania otagowane jako reflection

Odbicie to zdolność programu do obserwowania i / lub modyfikowania jego struktury i / lub zachowania w czasie wykonywania. Refleksja zależy od obsługiwanego języka programowania - należy oznaczyć język programowania używany podczas używania tego znacznika.


13
Jak kosztowne jest odbicie .NET?
Ciągle słyszę, jak używać złego odbicia. Chociaż generalnie unikam refleksji i rzadko znajduję sytuacje, w których nie można rozwiązać mojego problemu bez niego, zastanawiałem się ... Czy dla tych, którzy używali refleksji w aplikacjach, zmierzyliście wyniki wydajności i czy naprawdę jest tak źle?

6
Jak uzyskać listę właściwości o danym atrybucie?
Mam typ ti chciałbym uzyskać listę właściwości publicznych, które mają atrybut MyAttribute. Atrybut jest oznaczony AllowMultiple = falsenastępująco: [AttributeUsage(AttributeTargets.Property, AllowMultiple = false)] Obecnie mam to, ale myślę, że jest lepszy sposób: foreach (PropertyInfo prop in t.GetProperties()) { object[] attributes = prop.GetCustomAttributes(typeof(MyAttribute), true); if (attributes.Length == 1) { //Property with my …
210 c#  .net  reflection 

13
Uzyskaj nazwę właściwości jako ciąg
(Zobacz poniżej rozwiązanie, które utworzyłem przy użyciu odpowiedzi, którą zaakceptowałem) Usiłuję poprawić konserwowalność kodu wymagającego refleksji. Aplikacja ma interfejs zdalny .NET, odsłaniając (między innymi) metodę o nazwie Wykonaj, aby uzyskać dostęp do części aplikacji nie zawartych w opublikowanym zdalnym interfejsie. Oto, w jaki sposób aplikacja określa właściwości (w tym przykładzie …




9
Refleksja: Jak wywołać metodę z parametrami
Próbuję wywołać metodę poprzez odbicie z parametrami i otrzymuję: obiekt nie pasuje do typu docelowego Jeśli wywołam metodę bez parametrów, działa dobrze. Na podstawie następującego kodu, jeśli wywołam metodę Test("TestNoParameters"), działa dobrze. Jednak jeśli zadzwonię Test("Run"), otrzymam wyjątek. Czy coś jest nie tak z moim kodem? Moim początkowym celem było …

7
Sprawdź, czy obiekt klasy jest podklasą innego obiektu klasy w Javie
Bawię się z interfejsem API odbicie Java i próbuję obsłużyć niektóre pola. Teraz utknąłem w identyfikacji typu moich pól. Ciągi są łatwe, po prostu zrób myField.getType().equals(String.class). To samo dotyczy innych klas niepochodzących. Ale jak mogę sprawdzić klasy pochodne? Np. LinkedListJako podklasa List. Nie mogę znaleźć żadnej metody isSubclassOf(...)ani extends(...)metody. Czy …
196 java  class  reflection 

4
Jaka jest różnica między getFields a getDeclaredFields w odbiciu Java
Jestem trochę zdezorientowany co do różnicy między getFieldsmetodą agetDeclaredFields metodą przy użyciu odbicie Java. Przeczytałem, że getDeclaredFieldsdaje ci dostęp do wszystkich pól klasy i getFieldszwraca tylko pola publiczne. Jeśli tak jest, dlaczego po prostu nie zawsze używałbyś getDeclaredFields? Czy ktoś może rozwinąć tę kwestię i wyjaśnić różnicę między tymi dwiema …
195 java  reflection 

2
Dlaczego znalezienie inicjalizatora typu wyrzuciłoby wyjątek NullReferenceException?
To mnie zaskoczyło. Próbowałem zoptymalizować niektóre testy dla Noda Time, gdzie mamy pewne sprawdzanie inicjatora typu. Pomyślałem, że dowiem się, czy typ ma inicjator typu (konstruktor statyczny lub zmienne statyczne z inicjalizatorami) przed załadowaniem wszystkiego do nowego AppDomain. Ku mojemu zdziwieniu rzucił to niewielki test NullReferenceException- pomimo tego, że w …

5
Uzyskiwanie nazwy zestawu
Klasa wyjątku C # ma właściwość source, która domyślnie jest ustawiona na nazwę zestawu. Czy istnieje inny sposób na uzyskanie tego dokładnego ciągu (bez parsowania innego ciągu)? Próbowałem następujące: catch(Exception e) { string str = e.Source; //"EPA" - what I want str = System.Reflection.Assembly.GetExecutingAssembly().FullName; //"EPA, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" str = …




Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.