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.
Jak widać w poniższym kodzie, zadeklarowałem plik Action<> obiekt jako zmienną. Czy ktoś mógłby mi powiedzieć, dlaczego ten delegat metody akcji zachowuje się jak metoda statyczna? Dlaczego powraca truew poniższym kodzie? Kod: public static void Main(string[] args) { Action<string> actionMethod = s => { Console.WriteLine("My Name is " + s); …
Wywołuję metodę statyczną Parse na typie poprzez odbicie, ponieważ nie znam typu obiektu w czasie kompilacji (wiem jednak, że ma metodę Parse , pobierając ciąg). Jednak otrzymuję niejednoznaczny wyjątek dopasowania, prawdopodobnie dlatego, że istnieje wiele przeciążonych metod analizy , z których każda pobiera pojedynczy obiekt (ciąg, int, double itp.). W …
Zastanawiam się, skoro wiele rzeczy można zrobić za pomocą odbicia, czy mogę zmienić prywatne pole tylko do odczytu po zakończeniu wykonywania przez konstruktora? (uwaga: tylko ciekawość) public class Foo { private readonly int bar; public Foo(int num) { bar = num; } public int GetBar() { return bar; } } …
Mam Object[]tablicę i próbuję znaleźć te, które są prymitywami. Próbowałem użyć Class.isPrimitive(), ale wygląda na to, że robię coś źle: int i = 3; Object o = i; System.out.println(o.getClass().getName() + ", " + o.getClass().isPrimitive()); wydruki java.lang.Integer, false. Czy jest właściwy sposób lub alternatywa?
Czy Swift wspiera refleksję? np. czy istnieje coś takiego jak valueForKeyPath:i setValue:forKeyPath:dla obiektów Swift? Właściwie to ma w ogóle dynamiczny system typów, coś w rodzaju obj.classObjective-C?
Chcę załadować do nowego AppDomainzestawu, który ma złożone drzewo odwołań (MyDll.dll -> Microsoft.Office.Interop.Excel.dll -> Microsoft.Vbe.Interop.dll -> Office.dll -> stdole.dll) O ile zrozumiałem, kiedy ładowany jest zestaw AppDomain, jego odwołania nie byłyby ładowane automatycznie i muszę je ładować ręcznie. Więc kiedy to zrobię: string dir = @"SomePath"; // different from AppDomain.CurrentDomain.BaseDirectory …
Czy w PHP jest jakaś refleksja / introspekcja / magia, która pozwoli ci znaleźć plik PHP, w którym zdefiniowano określoną klasę (lub funkcję)? Innymi słowy, mam nazwę klasy PHP lub obiekt, którego instancja została utworzona. Chcę przekazać to do czegoś (funkcji, klasy odbicia itp.), Co zwróci ścieżkę systemu plików, w …
Mam kilka klas statycznych w przestrzeni nazw, mySolution.Macrostakich jak static class Indent{ public static void Run(){ // implementation } // other helper methods } Więc moje pytanie brzmi: jak będzie można nazwać te metody za pomocą refleksji? Jeśli metody NIE mają być statyczne, mógłbym zrobić coś takiego: var macroClasses = …
Znalazłem sposób na zdobycie dziedziczonych członków przez class.getDeclaredFields(); i dostęp do prywatnych członków przez class.getFields() Ale ja szukam prywatnych dziedziczonych pól. Jak mogę to osiągnąć?
Wydaje się to dość proste, ale nie mogę go uruchomić. Mam obiekt i używam odbicia, aby dostać się do jego właściwości publicznych. Jedna z tych właściwości jest statyczna i nie udało mi się do niej dotrzeć. Public Function GetProp(ByRef obj As Object, ByVal propName as String) as PropertyInfo Return obj.GetType.GetProperty(propName) …
Pracuję nad narzędziem uzupełniania (Intellisense) dla języka C # w emacsie. Chodzi o to, że jeśli użytkownik wpisze fragment, a następnie poprosi o uzupełnienie za pomocą określonej kombinacji naciśnięć klawiszy, narzędzie uzupełniania użyje odbicia .NET do określenia możliwych uzupełnień. Aby to zrobić, trzeba znać rodzaj realizowanej rzeczy. Jeśli jest to …
Chcę dynamicznie analizować drzewo obiektów, aby przeprowadzić niestandardową weryfikację. Walidacja nie jest ważna jako taka, ale chcę lepiej zrozumieć klasę PropertyInfo. Będę robić coś takiego, public bool ValidateData(object data) { foreach (PropertyInfo propertyInfo in data.GetType().GetProperties()) { if (the property is a string) { string value = propertyInfo.GetValue(data, null); if value …
Muszę uzyskać wartość pola za pomocą odbicia. Tak się składa, że nie zawsze jestem pewien, jaki jest typ danych pola. W tym celu i aby uniknąć powielania kodu, stworzyłem następującą metodę: @SuppressWarnings("unchecked") private static <T> T getValueByReflection(VarInfo var, Class<?> classUnderTest, Object runtimeInstance) throws Throwable { Field f = classUnderTest.getDeclaredField(processFieldName(var)); f.setAccessible(true); …
Mam test jednostkowy (nUnit). Wiele warstw w dół stosu wywołań metoda zakończy się niepowodzeniem, jeśli zostanie uruchomiona za pośrednictwem testu jednostkowego. Idealnie byłoby użyć czegoś takiego jak mockowanie do skonfigurowania obiektu, od którego zależy ta metoda, ale jest to kod innej firmy i nie mogę tego zrobić bez dużego nakładu …
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.