le dejo un ejemplo simple de como manejar la clase Dynamic que nos provee el paquete System.Dynamic del .Net Framework.
Para el ejemplo usaremos una clase Person:
/*********** Person.cs ***********/
class Person
{
public int intIdPerson {get; set;}
public string strFirstName {get; set;}
public string strLastName {get; set;}
public int intAge {get; set;}
}
/*********** Program.cs ***********/
class Program
{
static void Main(string[] args)
{
Person objPerson = new Person() { intIdPerson = 1,
strFirstName = "JHON",
strLastName = "SMITH",
intAge = 18
};
//Se instancia la clase ExpandoObject
dynamic dynPerson = new ExpandoObject();
dynPerson.intIdPerson = 2;
dynPerson.strFirstName = "PAUL";
dynPerson.strLastName = "CONNOR";
dynPerson.intAgr = 81;
//Se extrae el contenido del Dynamic dentro de un diccionario
var expandoDict = dynPerson as IDictionary
Console.WriteLine("objPerson.intIdPerson:" + objPerson.intIdPerson);
Console.WriteLine("dynPerson.intIdPerson:" + dynPerson.intIdPerson);
Console.WriteLine("expandoDict['intIdPerson']:" + expandoDict["intIdPerson"]);
Console.WriteLine(Environment.NewLine);
Console.WriteLine("objPerson.strFirstName:" + objPerson.strFirstName);
Console.WriteLine("dynPerson.strFirstName:" + dynPerson.strFirstName);
Console.WriteLine("expandoDict['strFirstName']:" + expandoDict["strFirstName"]);
}
}