using ImpromptuInterface;
public static void Main()
var thing = Create<IMyApiInterface>();
public static T Create<T>() where T : class
dynamic api = new ExpandoObject();
var clientType = typeof(T);
return Impromptu.ActLike<T>(api);
public interface IMyApiInterface
int MyProperty { get; set; }