Articles of reflection

GetProperties () per restituire tutte le proprietà per una gerarchia di ereditarietà dell’interfaccia

Supponendo la seguente ipotetica gerarchia di ereditarietà: public interface IA { int ID { get; set; } } public interface IB : IA { string Name { get; set; } } Usare la riflessione e effettuare la seguente chiamata: typeof(IB).GetProperties(BindingFlags.Public | BindingFlags.Instance) produrrà solo le proprietà dell’interfaccia IB , che è ” Name “. Se […]

Qual è la differenza tra System.Type e System.RuntimeType in C #?

Stavo cercando di fare alcuni test di convenzione oggi e di ottenere tutti i tipi in un assembly (chiamando Assembly.GetTypes() ), quando sono incappato in qualcosa: System.RuntimeType:[First.Namespace.FirstClass] Ogni volta che provo a confrontare quel tipo con typeof(FirstClass) , non sono uguali. Quindi, quando cerco di trovare tutti i tipi che contengono FirstClass come parametro generico, […]

Scopo di Activator.CreateInstance con esempio?

Qualcuno può spiegare in dettaglio lo scopo di Activator.CreateInstance() ?

Qual è la differenza tra il proxy dinamico JDK e CGLib?

Nel caso del Proxy Design Pattern , qual è la differenza tra Dynamic Proxy di JDK e API di generazione di codice dinamico di terze parti come CGLib ? Qual è la differenza tra l’utilizzo di entrambi gli approcci e quando si preferisce uno rispetto all’altro?

Ottieni il nome della variabile. javascript “reflection”

C’è un modo per ottenere il nome della variabile, come puoi fare con .Net con la riflessione? come in questo scenario: function(x,y,z) { if (x === 0) logger.log(‘variable ‘ + x.reflectedName ‘ has invalid value ‘ + x) // logs: ‘variable x has invalid value 0) … } Ho trovato domande simili che volevano il […]

Ottenere il nome di un parametro del metodo

In Java 6 , immagino di avere la seguente firma del metodo: public void makeSandwich(Bread slice1, Bread slice2, List fillings, boolean mustard) Mi piacerebbe sapere, in fase di esecuzione, il valore che è stato passato a slice2 o qualsiasi altro parametro, il bit importante qui è che voglio ottenere il valore per nome parametro. So […]

Usa la riflessione per invocare un metodo di base sottoposto a override

Come utilizzare la riflessione chiama un metodo di base che viene sovrascritto dalla class derivata? class Base { public virtual void Foo() { Console.WriteLine(“Base”); } } class Derived : Base { public override void Foo() { Console.WriteLine(“Derived”); } } public static void Main() { Derived d = new Derived(); typeof(Base).GetMethod(“Foo”).Invoke(d, null); Console.ReadLine(); } Questo codice […]

Come posso ottenere il membro a cui è stato applicato il mio attributo personalizzato?

Sto creando un attributo personalizzato in C # e voglio fare cose diverse in base al fatto che l’attributo sia applicato a un metodo rispetto a una proprietà. All’inizio avrei new StackTrace().GetFrame(1).GetMethod() nel mio costruttore di attributi personalizzati per vedere quale metodo si chiamava il costruttore di attributi, ma ora non sono sicuro di quello […]

Come faccio a invocare un metodo di estensione usando la riflessione?

Apprezzo che domande simili siano già state fatte prima, ma sto cercando di invocare il metodo Linq Where nel seguente codice. Sto cercando di utilizzare la riflessione per chiamare dynamicmente questo metodo e anche creare dynamicmente il delegato (o lambda) utilizzato nella clausola Where . Questo è un esempio di codice breve che, una volta […]

Come ottenere il MethodInfo di un riferimento al metodo Java 8?

Si prega di dare un’occhiata al seguente codice: Method methodInfo = MyClass.class.getMethod(“myMethod”); Funziona, ma il nome del metodo viene passato come una stringa, quindi questo verrà compilato anche se myMethod non esiste. D’altra parte, Java 8 introduce una funzione di riferimento del metodo. Viene controllato al momento della compilazione. È ansible utilizzare questa funzione per […]