senpost
4/22/2011 - 7:23 AM

C# dynamic: Adding properties and methods dynamically to dynamic object

C# dynamic: Adding properties and methods dynamically to dynamic object

static void Main(string[] args)
{
    dynamic value;
    value = 10; //Now it is Int32 
    value = DateTime.Now; //Now it is DateTime

    dynamic iAmDynamic = new ExpandoObject();
    iAmDynamic.X = 10;

    //Add new properties and methods
    Set(iAmDynamic);

    //Call added properties and methods
    Console.WriteLine(iAmDynamic.NewProperty);
    iAmDynamic.NewMethod();
}
static void Set(dynamic dynamicFromAnotherMethod)
{
    dynamicFromAnotherMethod.NewProperty = 20;
    dynamicFromAnotherMethod.NewMethod = new Action(
        () => { Console.WriteLine("Hello from dynamic method."); }
      );
}