Articles of reflexión

Crear instancia de tipo sin constructor predeterminado en C # usando reflexión

Tome la siguiente clase como ejemplo: class Sometype { int someValue; public Sometype(int someValue) { this.someValue = someValue; } } Entonces quiero crear una instancia de este tipo usando reflection: Type t = typeof(Sometype); object o = Activator.CreateInstance(t); Normalmente, esto funcionará, sin embargo, debido a que SomeType no ha definido un constructor sin parámetros, la […]

Llamar método estático con reflexión

Tengo varias clases estáticas en el espacio de nombres mySolution.Macros como static class Indent{ public static void Run(){ // implementation } // other helper methods } Entonces mi pregunta es cómo será posible llamar a esos métodos con la ayuda de la reflexión. Si los métodos NO son estáticos, entonces podría hacer algo como: var […]

Obtener todas las clases heredadas de una clase abstracta

Tengo una clase abstracta: abstract class AbstractDataExport { public string name; public abstract bool ExportData(); } Tengo clases que se derivan de AbstractDataExport: class XmlExport : AbstractDataExport { new public string name = “XmlExporter”; public override bool ExportData() { … } } class CsvExport : AbstractDataExport { new public string name = “CsvExporter”; public override […]

¿Es posible establecer propiedad privada a través de la reflexión?

¿Puedo establecer una propiedad privada a través de la reflexión? public abstract class Entity { private int _id; private DateTime? _createdOn; public virtual T Id { get { return _id; } private set { ChangePropertyAndNotify(ref _id, value, x => Id); } } public virtual DateTime? CreatedOn { get { return _createdOn; } private set { […]

Cómo obtener nombres de argumento usando la reflexión

Me gustaría hacer un poco de reflexión bastante pesado en Ruby. Quiero crear una función que devuelva los nombres de los argumentos de varias funciones de llamada más arriba en la stack de llamadas (solo una más sería suficiente, pero ¿por qué detenerse ahí?). Podría usar Kernel.caller , ir al archivo y analizar la lista […]

¿Cómo puedo obtener todas las clases dentro de un espacio de nombres?

¿Cómo puedo obtener todas las clases dentro de un espacio de nombres en C #?

¿Cómo instancia la deserialización de WCF los objetos sin llamar a un constructor?

Hay algo mágico pasando con la deserialización de WCF. ¿Cómo crea una instancia de un tipo de contrato de datos sin llamar a su constructor? Por ejemplo, considere este contrato de datos: [DataContract] public sealed class CreateMe { [DataMember] private readonly string _name; [DataMember] private readonly int _age; private readonly bool _wasConstructorCalled; public CreateMe() { […]

Invocar un método estático usando la reflexión

Quiero invocar el método main , que es estático. Obtuve el objeto de tipo Class , pero no puedo crear una instancia de esa clase y tampoco puedo invocar el método static main .

Lanzar una variable usando una variable Tipo

En C #, ¿puedo convertir una variable de tipo objeto en una variable de tipo T donde T se define en una variable Tipo?

Cambiar el parámetro del atributo en el tiempo de ejecución

No estoy seguro de si es posible cambiar los parámetros del atributo durante el tiempo de ejecución. Por ejemplo, dentro de una asamblea tengo la siguiente clase public class UserInfo { [Category(“change me!”)] public int Age { get; set; } [Category(“change me!”)] public string Name { get; set; } } Esta es una clase proporcionada […]