Can I define a class which derives from DynamicObject and supports an interface (ICanDoManyThings) without having to implement each method in the interface?
I\'m trying
ImpromptuInterface does exactly this and it works with ANY IDynamicMetaObjectProvider including DynamicObject subclasses and ExpandoObject.
using ImpromptuInterface;
using ImpromptuInterface.Dynamic;
public interface IMyInterface{
string Prop1 { get; }
long Prop2 { get; }
Guid Prop3 { get; }
bool Meth1(int x);
}
...
//Dynamic Expando object
dynamic tNew = Build.NewObject(
Prop1: "Test",
Prop2: 42L,
Prop3: Guid.NewGuid(),
Meth1: Return.Arguments(it => it > 5)
);
IMyInterface tActsLike = Impromptu.ActLike(tNew);
Linfu won't actually use DLR based objects and rather uses it's own naive late binding which gives it a SERIOUS performance cost. Clay does use the dlr but you have to stick with Clay objects which are designed for you to inject all behavior into a ClayObject which isn't always straightforward.