Search code examples
c#dynamicobject

C# DynamicObject class methods


Is there an easy way to create a class method for a subclass of a DyanamicObject or ExpandoObject?

Is resorting back to reflection the only way?

What I mean is something like :-

class Animal : DynamicObject {
}

class Bird : Animal {
}

class Dog : Animal {
}

Bird.Fly = new Action (()=>Console.Write("Yes I can"));

Bird.Fly in this case applying to the class of Bird rather than any specific instance.


Solution

  • Nope, there are no dynamic class scoped methods. The closest thing you could do is have a dynamic singleton statically declared on the subclass.

    class Bird : Animal {
        public static readonly dynamic Shared = new ExpandoObject();
    
    
    }
    
    Bird.Shared.Fly = new Action (()=>Console.Write("Yes I can"));