Fiz uma class de gerador que constrói uma class de proxy baseada na interface que implementa a interface. Veja minha postagem em Criar uma class de proxy com base na interface sem implementá-la . Estou familiarizado com CustomAttributeData.GetCustomAttributes(MemberInfo target) , usei-o quando li os membros da Interface e consegui importá-los para o proxy. Eu quero […]
Eu escrevi o seguinte aplicativo de console para testar as propriedades estáticas: using System; namespace StaticPropertyTest { public abstract class BaseClass { public static int MyProperty { get; set; } } public class DerivedAlpha : BaseClass { } public class DerivedBeta : BaseClass { } class Program { static void Main(string[] args) { DerivedBeta.MyProperty = […]
Deixe-me descrever o problema e a solução que eu tenho atualmente e talvez você possa me ajudar a esclarecer porque é uma má idéia (supondo que seja) e o que eu posso fazer para torná-lo um sistema melhor. agora eu tenho 600 “rippers” que analisam arquivos e os copiam para csv ou outros formatos. Todos […]
Aqui estão dois methods de extensão para uso public static Type FindInterfaceWith(this Type type1, Type type2) { // returns most suitable common implemented interface } public static Type FindBaseClassWith(this Type type1, Type type2) { // returns most derivative of common base class } FindInterfaceWith retorna null se eles não tiverem uma interface comum implementada. FindBaseClassWith […]
Eu estou tentando usar a reflection para conseguir o seguinte: Eu preciso de um método onde eu passar em um object e este método instanciará recursivamente o object com objects filho e definir as propriedades com valores padrão. Eu preciso de todo o object instanciado indo tantos níveis quanto necessário. Esse método precisa ser capaz […]
Depois de gerar um tipo dinamicamente e chamando TypeBuilder.CreateType, eu quero criar um delegado que aponta para um método no novo tipo. Mas se eu usar código como loadedType = typeBuilder.CreateType(); myDelegate = (MyDelegate)Delegate.CreateDelegate( typeof(MyDelegate), methodBuilder); Reutilizando o methodBuilder como um methodInfo, recebo a exceção “MethodInfo deve ser um RuntimeMethodInfo”. Agora normalmente eu posso readquirir […]
Eu sou um recém-chegado ao C #. Eu tenho um object em c #, como verificar se é uma matriz única ou multidimensional? int[,] array = new int[2,3]; object obj = (object) array; if(obj is Array) { if(obj.Rank==2) // I need to cast obj to array first in order to call Rank { //do something […]
Eu tenho um erro semelhante a este , mas infelizmente não é a mesma solução simples. Aqui está o código: public virtual void MapObject(T obj, IViewModel viewModel, ITPSDataAccess dataAccess) { var objProps = obj.GetType().GetProperties(); var dtoProps = viewModel.GetType().GetProperties(); foreach (var dtoProp in dtoProps) { var objProp = dtoProps.SingleOrDefault(x => x.Name == dtoProp.Name); if (objProp != […]
Esta questão surgiu quando eu estava tentando descobrir um problema maior que, por simplicidade, estou omitindo. Eu tenho que representar uma certa estrutura de dados em c #. É um protocolo que será usado para se comunicar com um sistema externo. Como tal, tem uma seqüência de strings com comprimentos predefinidos e inteiros (ou outros […]
Usando o artigo de Jon Skeet Making reflection fly e explorando delegates como um guia, estou tentando usar o método Delegate.CreateDelegate para duplicar propriedades como representantes. Aqui está um exemplo de class: public class PropertyGetter { public int Prop1 {get;set;} public string Prop2 {get;set;} public object GetPropValue(string propertyName) { var property = GetType().GetProperty(propertyName).GetGetMethod(); propertyDelegate = […]