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.
Ten kod: Type.GetType("namespace.a.b.ClassName") zwraca null. i mam w użyciu: using namespace.a.b; Aktualizacja: Ten typ istnieje, jest w innej bibliotece klas i muszę go zdobyć po nazwie łańcucha.
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?
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 …
(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 …
Jak mówi tytuł: Czy odbicie może dać nazwę aktualnie wykonywanej metody. Nie jestem skłonny zgadywać z powodu problemu Heisenberga. Jak wywołać metodę, która poinformuje cię o bieżącej metodzie bez zmiany jej aktualnej metody? Ale mam nadzieję, że ktoś może udowodnić, że się mylę. Aktualizacja: Część 2: Czy można tego również …
Chcę wywołać mainmetodę, która jest statyczna. Mam obiekt typu Class, ale nie jestem w stanie utworzyć instancji tej klasy, a także nie mogę wywołać staticmetody main.
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 …
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 …
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 …
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 …
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 = …
Wyobraź sobie następujące Typ T ma pole Firma. Podczas wykonywania następującej metody działa idealnie: Type t = typeof(T); t.GetProperty("Company") Jednak z następującą rozmową otrzymuję zero Type t = typeof(T); t.GetProperty("company", BindingFlags.IgnoreCase) Czy ktoś ma pomysł?
Zamknięte. To pytanie nie spełnia wytycznych dotyczących przepełnienia stosu . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby było na temat przepełnienia stosu. Zamknięte 3 lata temu . Popraw to pytanie Mamy ten szkic schematu JSON . Chciałbym pobrać próbkę moich danych JSON i wygenerować szkielet schematu …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.