Binaries incorporate roughly 30 hours of unit and performance testing.
The following performance characteristics have been tuned:
- EventsObject enforces event type safety at compile time to skp runtime type checks.
- EventsObject now exposes overloads on RaiseEvent method, to eliminate construction of anonymous types to implement event raising logic.
- ObservableObject's DoSetProperty optimized.
The big news: WeakDelegate Type
The brand-spanking new WeakDelegate type replaces the older EventHandler specific code with an engine which sports the following characteristics:
- Optimized MSIL code converts a strong delegate to a weak delegate:
- Only one object is constructed (the weak delegate derives from WeakReference to reduce the number of objects created)
- All dynamic code is cached so to offer fastest possible performance.
- Supports non-EventHandler based delegates:
- Extension methods added to Delegate type, instead of EventHandler type, which allows all qualifying delegates to be converted to weak references.
- Anonymous delegates and lambdas are supported.
- Intelligent detection and pass-through of static and already-weak delegates.