Articles of riflessione

Come posso intercettare un’invocazione di un metodo con funzionalità java standard (senza AspectJ, ecc.)?

Voglio intercettare tutte le invocazioni di metodi in qualche class MyClass per poter reactjs su alcune invocazioni setter. Ho provato ad utilizzare i proxy dinamici, ma per quanto ne so, questo funziona solo per le classi che implementano alcune interfacce. Ma MyClass non ha una tale interfaccia. C’è un altro modo, oltre a implementare una […]

Leggi il valore di un attributo di un metodo

Devo essere in grado di leggere il valore del mio attributo all’interno del mio metodo, come posso farlo? [MyAttribute(“Hello World”)] public void MyMethod() { // Need to read the MyAttribute attribute and get its value }

Creazione rapida di oggetti anziché Activator.CreateInstance (tipo)

Sto cercando di migliorare le prestazioni della nostra applicazione. Abbiamo un sacco di chiamate Activator.CreateInstance che stanno causando un po ‘di dolore. Istanziamo un sacco di classi basate su un’interfaccia (ITabDocument) e dopo aver guardato in giro ho pensato di usare questo codice: Il codice non è migliore (anche se leggermente più lento) rispetto all’utilizzo […]

Utilizzo di Case / Switch e GetType per determinare l’object

Possibile duplicato: C # – C’è un’alternativa migliore di questa per ‘triggersre il tipo’? Se vuoi switch un tipo di object, qual è il modo migliore per farlo? Snippet di codice private int GetNodeType(NodeDTO node) { switch (node.GetType()) { case typeof(CasusNodeDTO): return 1; case typeof(BucketNodeDTO): return 3; case typeof(BranchNodeDTO): return 0; case typeof(LeafNodeDTO): return 2; […]

Copia tutti i valori dai campi di una class a un’altra attraverso il riflesso

Ho una class che è fondamentalmente una copia di un’altra class. public class A { int a; String b; } public class CopyA { int a; String b; } Quello che sto facendo è inserire i valori dalla class A in CopyA prima di inviare CopyA tramite una chiamata al servizio CopyA . Ora vorrei […]

Verifica se una variabile è definita?

Come posso verificare se una variabile è definita in Ruby? È disponibile un metodo di tipo isset ?

Come determinare se un tipo implementa un’interfaccia con riflessione C #

La riflessione in C# offre un modo per determinare se alcuni tipi di tipi System.Type un’interfaccia? public interface IMyInterface {} public class MyType : IMyInterface {} // should yield ‘true’ typeof(MyType)./* ????? */MODELS_INTERFACE(IMyInterface);

Ottieni un’istanza di oggetti companion con la nuova API di riflessione di Scala

Con la nuova API di reflection di Scala, è ansible ottenere un riferimento all’object companion di una class? Sto pensando a qualcosa in questo senso: trait Base { def companion: MetaBase = someReflectionMagic(this).asInstanceOf[MetaBase] } trait MetaBase { // stuff } // — class Foo extends Base object Foo extends MetaBase assert(new Foo.companion == Foo)

Ottieni un metodo generico senza utilizzare GetMethods

Voglio ottenere il metodo System.Linq.Queryable.OrderyBy(the IQueryable source, Expression<Func> keySelector) il metodo System.Linq.Queryable.OrderyBy(the IQueryable source, Expression<Func> keySelector) , ma continuo a venire con null. var type = typeof(T); var propertyInfo = type.GetProperty(group.PropertyName); var propertyType = propertyInfo.PropertyType; var sorterType = typeof(Func).MakeGenericType(type, propertyType); var expressionType = typeof(Expression).MakeGenericType(sorterType); var queryType = typeof(IQueryable); var orderBy = typeof(System.Linq.Queryable).GetMethod(“OrderBy”, new[] { queryType, […]

Rileva se un metodo è stato sovrascritto utilizzando Reflection (C #)

Supponiamo di avere una baseBase TestBase dove definisco un metodo virtuale TestMe () class TestBase { public virtual bool TestMe() { } } Ora eredito questa class: class Test1 : TestBase { public override bool TestMe() {} } Ora, usando Reflection, ho bisogno di trovare se il metodo TestMe è stato sovrascritto in class figlio […]