Articles of reflexión de

Java busca un método con anotación específica y su elemento de anotación

Supongamos que tengo esta clase de anotación @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface MethodXY { public int x(); public int y(); } public class AnnotationTest { @MethodXY(x=5, y=5) public void myMethodA(){ … } @MethodXY(x=3, y=2) public void myMethodB(){ … } } Entonces, ¿hay alguna forma de ver un objeto, “buscar” el método con la anotación @MethodXY, donde […]

Descubriendo tipos derivados usando la reflexión

Usando la reflexión, ¿es posible descubrir todos los tipos que se derivan de un tipo dado? Es de suponer que el scope se limitaría a un solo conjunto.

Cómo obtener un valor de propiedad usando la reflexión

Tengo el siguiente código: FieldInfo[] fieldInfos; fieldInfos = GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance); Lo que trato de hacer es obtener el valor de una de mis propiedades de la instancia instanciada actual en tiempo de ejecución usando reflexión. ¿Cómo puedo hacer esto?

¿Cómo llamar al método genérico con un objeto Tipo dado?

Quiero llamar a mi método genérico con un objeto tipo dado. void Foo(Type t) { MyGenericMethod(); } obviamente no funciona. ¿Cómo puedo hacer que funcione?

Tipo de resolución del nombre de clase en un ensamblaje diferente

Tengo un método donde necesito resolver el tipo de una clase. Esta clase existe en otro ensamblado con el espacio de nombres similar a: MyProject.Domain.Model Estoy intentando realizar lo siguiente: Type.GetType(“MyProject.Domain.Model.” + myClassName); Esto funciona muy bien si el código que está realizando esta acción está en el mismo ensamblaje que la clase cuyo tipo […]

Usando .Net, ¿cómo puedo determinar si un tipo es un ValueType numérico?

Pero aquí hay un ejemplo: Dim desiredType as Type if IsNumeric(desiredType) then … EDITAR: solo conozco el tipo, no el valor como una cadena. Bien, lamentablemente tengo que pasar por el TypeCode. Pero esta es una buena forma de hacerlo: if ((desiredType.IsArray)) return 0; switch (Type.GetTypeCode(desiredType)) { case 3: case 6: case 7: case 9: […]

¿Cómo copiar el valor de la clase X a la clase Y con el mismo nombre de propiedad en c #?

Supongamos que tengo dos clases: public class Student { public int Id {get; set;} public string Name {get; set;} public IList Courses{ get; set;} } public class StudentDTO { public int Id {get; set;} public string Name {get; set;} public IList Courses{ get; set;} } Me gustaría copiar el valor de la clase Student a […]

System.out se declara como estático final e inicializado con nulo?

Cuando estaba pasando por System.class , encontré algo que me pareció extraño. Cuando System.in, System.out, System.err statement de System.in, System.out, System.err estas se clasifican como final static pero también se inicializan con null public final static InputStream in = null; public final static PrintStream out = null; public final static PrintStream err = null; Como […]

¿Cómo puede obtener los nombres de los parámetros del método?

Si tengo un método como: public void MyMethod(int arg1, string arg2) ¿Cómo podría obtener los nombres reales de los argumentos? Parece que no puedo encontrar nada en MethodInfo que realmente me dé el nombre del parámetro. Me gustaría escribir un método que se vea así: public static string GetParamName(MethodInfo method, int index) Entonces, si llamé […]

¿Cómo encontrar todas las clases que implementan una interfaz determinada?

Bajo un espacio de nombres dado, tengo un conjunto de clases que implementan una interfaz. Vamos a llamarlo ISomething . Tengo otra clase (llamémosla CClass ) que sabe acerca de ISomething pero no conoce las clases que implementan esa interfaz. Me gustaría que CClass busque toda la implementación de ISomething , instanciar una instancia y […]