Articles of reflection

Obter o valor da propriedade pelo nome de stringy

Por favor, considere esta class: public static class Age { public static readonly string F1 = “18-25”; public static readonly string F2 = “26-35”; public static readonly string F3 = “36-45”; public static readonly string F4 = “46-55″; } Eu quero escrever uma function que obtenha “F1” e retorne “18-25”. Por exemplo private string GetValue(string […]

System.Reflection.MethodInfo.Invoke e vários encadeamentos

Oi como faço para chamar System.Reflection.MethodInfo.Invoke () com parâmetros com threads. Por exemplo.. Digamos que eu tenho um método que permite que você passe em uma string que representa um nome de class e chama o método de class correspondente dinamicamente, agora eu quero chamar este Methodinfo.invoke com threads, não tenho idéia de como fazer […]

Obter todas as classs que implementam uma determinada class abstrata

Estou tentando obter todas as classs que implementam uma determinada class abstrata. Estou tentando fazer isso com o seguinte código: var type = typeof(BaseViewComponent); var types = Assembly .GetEntryAssembly() .GetReferencedAssemblies() .Select(Assembly.Load) .SelectMany(s => s.GetTypes()) .Where(p => type.IsAssignableFrom(p)); Mas até agora eu só sou capaz de obter a própria class abstrata. Não é qualquer class que […]

Acesso a propriedades de class abstrata com reflection

Eu tenho uma class abstrata – vamos chamar de Base . Esta class contém algumas propriedades. Além disso, tenho outra class, herdada da class Base – vamos chamar de Child . Child não é abstrata. Eu quero acessar as propriedades da class Base com reflection e apenas as propriedades declaradas na Base . O código […]

Extrair o nome da function de uma function

Como posso criar uma function chamada getFuncName que usa uma function do tipo (unit -> ‘a) e retorna seu nome. Eu estava falando com um dos devedores C # e eles disseram que você poderia usar a propriedade .Method em um tipo Func como mostrado em um exemplo aqui . Eu tentei converter isso para […]

Como criar uma instância de object de class com construtor interno via reflection?

Exemplo: class Program { static void Main(string[] args) { var myClass = Activator.CreateInstance(typeof(MyClass)); } } public class MyClass { internal MyClass() { } } Exceção: System.MissingMethodException Nenhum construtor sem parâmetros definido para este object. Solução: var myClass = Activator.CreateInstance(typeof(MyClass), nonPublic:true); Não consigo entender por que não consigo criar uma instância dentro do assembly com o […]

Como determinar o tipo anexado de dentro de um atributo personalizado?

Eu tenho um atributo personalizado que pode ser atribuído a uma class, [FooAttribute] . O que eu gostaria de fazer, dentro do atributo, é determinar qual tipo realmente me usou. Por exemplo, se eu tiver: [FooAttribute] public class Bar { } No código do FooAttribute, como posso determinar que foi a class Bar que me […]

Como obter instância de uma class com o nome da class?

Eu vi este tópico: Criando uma instância a partir de um nome de class e escrevi este código: public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { object obj = Activator.CreateInstance(null, “MyClass”); MyClass t = (MyClass)obj; t.My1 = 100; MessageBox.Show(t.My1.ToString()); } } public class MyClass […]

Por que não uma function de reflection memberinfo () para c #

Há sizeof() e typeof() , mas por que não um memberinfo() retornando uma instância de System.Reflection.MemberInfo para a parte do código selecionada para auxiliar no código de reflection. Exemplo: Program() { Type t = typeof(Foo); Foo foo = new Foo(); PropertyInfo pi = memberinfo(Foo.Name) as PropertyInfo; // or shall it be like this // PropertyInfo […]

Como descobrir se o tipo de um object implementa IEnumerable onde X deriva de Base usando Reflexão

Dê uma class base Base , quero escrever um método Teste, assim: private static bool Test(IEnumerable enumerable) { … } tal que Test retorna true se o tipo de o implementa qualquer interface de IEnumerable onde X deriva de Base , de forma que se eu fizesse isso: public static IEnumerable Convert(IEnumerable enumerable) { if […]