cast anonymous type to an interface?

sgtz picture sgtz · Feb 12, 2012 · Viewed 7.4k times · Source

This doesn't seem to be possible? So what is the best work-around? Expando / dynamic?

public interface ICoOrd {
    int x { get; set; }
    int y { get; set; }
}      

...

ICoOrd a = new {x = 44, y = 55};

ref:

Answer

Ani picture Ani · Feb 12, 2012

The best "workaround" is to create and use a normal, "named" type that implements the interface.

But if you insist that an anonymous type be used, consider using a dynamic interface proxy framework like ImpromptuInterface.

 var myInterface =  new { x = 44, y = 55 }.ActLike<ICoOrd>();