Release Notes

v2.11.4 - August 31, 2013

Pulled Michael Trotter's contract modifications for the URI extensions. Published corresponding NuGet.

v2.11.0 - May 3, 2013

Pulled Tyler Garlick's fork and published NuGet package with the updates. Adds non-generic methods to IFactory reducing need for reflection further down in the FlitBit frameworks.

v2.10.2 - April 11, 2013

Added DefaultImplementationAttribute and a simple test. Use it to indicate a default implementation when declaring interfaces.

v2.10.1 - March 26, 2013

There were a few situations where automatically generated types were getting lost due to bootstrap timing. In some cases, an automatically generated type was getting emitted and registered with the FactoryProvider early in the boostrap process. At a later time, when an IoC container was wired up, those early registrations would be lost. Modified ProviderFactory to attach a rudimentary factory chain. This enables factory providers registered after wireup to interrogate the bootstrap factory for type registrations.

Pushed an updated the NuGet package.

v2.10.0 - March 21, 2013

Added RegisterImplementationType<T, TImpl> method to IFactory in order for frameworks to directly notify the currently wired IFactory about new implementation types that they provide. This is an alternative to implementing AutoImplementedAttribute which previous, was the default method used to notify factories about emitted types. For more info see the provided unit test.

v2.9.1 - March 15, 2013

Added GetDateTime and GetDateTimeOffset to the DataGenerator class. They generate random DateTime and DateTimeOffsets. Published NuGet package.


Primarily code cleanup and organization. Breaking change to Disposable (base) and Util.VolatileWrite methods.

Disposable base class

Specialized classes may now provide an argument to the constructor indicating whether the call stack should be captured by the constructor. Due to the performance hit, this functionality is intended for debug configurations only. It is caller controlled for convenience. Derived classes can access the captured call stack via the CreationStack property.

Breaking change: the CreationStack property was mistakenly marked public in a prior release. It is now protected.

Breaking change: the ShouldTrace and OnTraceEvent methods have been removed. Specialized classes should provide their own trace-log related implementation when necessary.

Util.VolatileWrite Method

Breaking change: The method signature has changed from:

 public static void VolatileWrite<T>(ref T reference, T value) 
 { // ...elided...

 public static void VolatileWrite<T>(out T reference, T value) 
 { // ...elided...

This change in signature does not affect behavior but is semantically accurate and removes a nagging code analysis warning.


Improved logic in Disposable subclasses' PerformDispose methods; many were calling Dispose on their dependencies, even when invoked from finalizer. This was causing an occasional ObjectDisposedException in the GC thread when the dependencies were already disposed.

Last edited Aug 31, 2013 at 6:49 PM by cerebralkungfu, version 11


No comments yet.