Releases: ekonbenefits/impromptu-interface
Releases · ekonbenefits/impromptu-interface
Core 5.6.4
- Fixed recursive bug with type coercion of !ImpromptuDictionary & !ImpromptuGet
FSharp 1.1.0
>?>operator for dynamically calling implicit operator>>?>>operator for dynamically calling explicit operatordynAddAssign(obj)?Event<-EventHandleroperator for dynamically adding eventsdynSubtractAssign(obj)?Event<-EventHandleroperator for dynamically removing eventsdynArg(objArg)?Namesyntax for pairing argument names when dynamically invoking
Core 5.6.2 / MVVM 3.6.2 / FSharp 1.0.2
- Core: can cast type to
StaticContextto late bind static methods - Core: interface proxy hides implementation methods with separate interface
- Core: fixed large number of arguments bug (>15)
- Core:
Build<>.NewListis now property rather than method so that it can be stored and used from a variable - Core: Curry Cast no longer has artificial argument limit
- Core: added
ImpromptuLazy<>dynamic wrapper aroundLazy<> - Core: added
ImpromptuLateLibraryTypedynamic lookup type at runtime can dynamically call static methods and constructor. - FSharp: Dynamic operator implementation
- FSharp:
!?prefix operator allows direct invoke of delegates/objects dynamically
Core 5.5.8
- Small curry bugs with currying instance and static methods.
- Mono runtime & compiler fixes for currying.
Core 5.5.6 / MVVM 3.5.6
- Core: Function & Method Currying/Partial Apply with Impromptu.Curry
- Core: Impromptu.Invoke(!CallSite,...) is now Impromptu.!InvokeCallSite(!CallSite,..) old name marked as obsolete.
- Core: Impromptu.Invoke(target,...) allows for dynamic invocation of delegates and dynamic objects.
- Core:
InvokeGetChained,InvokeSetChained- Allows calling via property chain. - Core:
InvokeSetAll- Allows calling several properties in one method. - Core:
Impromptu.GetMemberNames()gets dynamic members and public properties. - Core: Interface result coercion of
ImpromptuGet&ImpromptuDictionaryfall back toTypeConverterif need be (including builtin silverlight converters). - Core: Proxy indexers now work with VB.NET
- Core: Fixed issues with possible interface collisions.
- Core:
PropertyNotifyChangedmore efficient - Core:
ImpromptuFactorycan now create via method call with constructor args. - MVVM: new experimental window factory
Core 5.1.1 / MVVM 3.1.1
- Core: Fixed bug that wouldn't allow context parameter for really late binding to be just a plain Type object
- Core: Improved proxy generation to include attributes used by dynamic invocation to resolve overloads
- MVVM: Added a Property-
ToStringproxy object
Core 5.0.4 / MVVM 3.0.4
- Core: Fixed invocation issue with delegates that have out parameters in
ImpromptuDictionary - Core: Fixed Issue with
InvokeConstructoron Mono - Core: Improved Invoke methods performance by a factor of 2.
- Core: Added a convenience factory method for
CacheableInvocationthe usesCallInfo - Core: Added equals/hashcode methods to
CacheableInvocation
Core 5.0.3 / MVVM 3.0.3
- Core: Added missing event support for
ActLike - Core: Added
Impromptu.InvokeIsEvent,Impromptu.InvokeAddAssignandInvokeSubtractAssign - Core: Added
ImpromptuPropertyDescriptorfor DynamicPropertyDescriptorandImpromptuListimplementsITypedList - Core:
ImpromptuForwardersupports forwarding events. - Core: class Invocation breaking change
InvokeWithArgs->Invoke, and Invoke->InvokeWithStoredArgs - Core: Added
CacheableInvocationwith more signature information added in the creation of this invocation performance gains up to 25x faster on invoke. - MVVM: Added
ViewModelEvent Binding Syntax - MVVM: Added
ViewModelspecificPropertyChangesubscription Syntax - MVVM:
ImpromptuBindingListsupportsDataGridAutoColumns - All: Added Public symbol/source server debugging support
Core 4.0.7 / MVVM 2.0.7
- Core:
ActLikeProxies and most dynamic classes now serializable.- Core: Added
ImpromptuForwarderbase class - Core: Added
ImpromptuRecorderdynamic class - Core: Added
Impromptu.InvokeConvertstatic method - Core: Added
Impromptu.InvokeConstuctorstatic method - Core: Added
Impromptu.Get\SetIndexstatic method - Core: Suports Syntax for really late binding static methods (
InvokeStaticContext), generic parameters(InvokeMemberName), and permissions context (InvokeContext),. - Core: Deprecated Call... static methods use
InvokeContextsyntax instead - Core: Fixed bug with proxying arrays
- mvvm: Can put compile time contract on dynamic properties (gain intellisense) with
ImpromptuViewModel - mvvm: Dependancies property on
ImpromptuViewModelthat allows linking properties on dependent properties. - mvvm:
ImpromptuToString<TTarget>proxy class allows replacing ofToStringmethod so that you can bind model objects to view items.
- Core: Added
Core 3.1.4 / MVVM 1.09
- Core: Added prototype object initialization syntax based on Clay.
dynamic New # Impromptu.Builder();99% Compatible with Clay initialization syntax but resulting prototype object isImpromptuDictionarywhich is 100x faster than Clay. - Core:
dynamic New # Impromptu.Builder<T>();gives basic initialization syntax to work on any object, includingExpandoObjectwhich is less compatible with Clay syntax but 500x faster than Clay, or even clay objects themselves which can be 100% compatible - Core: Better Support for Xaml Binding for
ImpromptuDictionary - Core: Added
InvokeArgsyntax for extreme late binding support with named arguments. - Core: Added
[UseNamedArgument]attribute that can be used on Methods or Method Arguments on an Interface to tell the proxy use the argument name in the binding. - MVVM:
ImpromptuViewModelDynamically does work necessary for binding properties and commands that normally requires lots of boilerplate. - MVVM:
ImpromptuRelayCommandextreme late binding relay command.