net4.0/netstd2.0 framework to allow you to wrap any object (static or dynamic) with a static interface even though it didn't inherit from it. It does this by emitting cached dynamic binding code inside a proxy.
ImpromptuInterface is available Nuget
Some of the features of ImpromptuInterface
have been moved into another library called Dynamitey, ImpromptuInterface
depends on Dynamitey
.
ImpromptuInterface.FSharp
has been spun off into FSharp.Interop.Dynamic and also depends on Dynamitey
.
ImpromptuInterface.MVVM
has been spun off into it's own repo ImpromptuInterface.MVVM and only receives maitenance updates.
using ImpromptuInterface; using Dynamitey; public interface IMyInterface{ string Prop1 { get; } long Prop2 { get; } Guid Prop3 { get; } bool Meth1(int x); }
//Anonymous Class var anon = new { Prop1 = "Test", Prop2 = 42L, Prop3 = Guid.NewGuid(), Meth1 = Return<bool>.Arguments<int>(it => it > 5) }; var myInterface = anon.ActLike<IMyInterface>();
//Dynamic Expando object dynamic expando = new ExpandoObject(); expando.Prop1 ="Test"; expando.Prop2 = 42L; expando.Prop3 = Guid.NewGuid(); expando.Meth1 = Return<bool>.Arguments<int>(it => it > 5); IMyInterface myInterface = Impromptu.ActLike(expando);
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4