Segue um exemplo simplificado da solução que adotamos:
class Teste
{
public int attrib1 = 0;
public string attrib2 = null;
}
class Program
{
static void Main(string[] args)
{
Teste teste = new Teste();
FieldInfo fiAttrib1 = teste.GetType().GetField("attrib1");
fiAttrib1.SetValue(teste, 0);
FieldInfo fiAttrib2 = teste.GetType().GetField("attrib2");
fiAttrib2.SetValue(teste, "abc");
Console.WriteLine("Attrib1: {0}\nAttrib2: {1}", teste.attrib1, teste.attrib2);
}
}
Na pratica os campos do arquivo são lidos de um arquivo de configuração. Ainda, como os atributos da classe são privados se faz necessário passar BindingFlags.Instance BindingFlags.NonPublic como parametro do método GetField
Nenhum comentário:
Postar um comentário