Castle Windsor v3.2.0 Release Notes

Release Date: 2013-02-16 // about 11 years ago
    • implemented IOC-375 - List duplicate registrations that are registered through convention
    • ๐Ÿ’… implemented IOC-366 - support scoped lifestyle in XML config
    • implemented IOC-365 - Provide convenience methods in the registration API to bind to nearest subgraph (in addition to existing - widest)
    • implemented IOC-362 - New container diagnostic - duplicated dependencies
    • implemented IOC-360 - Ability to register types based on one or several of multiple bases
    • implemented IOC-358 - add ability to specify dependency on an embedded resource
    • ๐Ÿš‘ implemented IOC-357 - Provide some internal logging in Windsor to be able to see non-critical errors
    • implemented IOC-355 - Add a mechanism to mark constructors as unselectable for injection, much like DoNotWireAttribute is for property injection
    • implemented IOC-353 - Add Classes.FromAssemblyInThisApplication() for parity with FromAssembly class
    • ๐Ÿ”ง implemented IOC-348 - Explict sort order for convention-based configuration would be nice
    • ๐Ÿ›  fixed FACILITIES-160 - Wcf Facility doesn't support multiple IErrorHandlers
    • ๐Ÿ›  fixed IOC-374 - Container.Register causing NotSupportedException in ASP .NET MVC 4.
    • ๐Ÿ›  fixed IOC-373 - Open Generics won't resolve with LateBoundComponent Implementation
    • ๐Ÿ›  fixed IOC-372 - Performance Counters not updated on releasing a typed factory
    • ๐Ÿ›  fixed IOC-371 - AssemblyFilter cannot find assemblies on case-sensitive filesystems
    • ๐Ÿ›  fixed IOC-370 - Deadlock
    • ๐Ÿ›  fixed IOC-369 - Probably bug with generic interceptors
    • ๐Ÿ›  fixed IOC-364 - It is impossible to use bound lifestyle with chain of components binding to innermost one
    • ๐Ÿ›  fixed IOC-359 - Property filtering API is confusing and buggy
    • ๐Ÿ›  fixed IOC-356 - Specifying a hook should be enough to create an implementation-less proxy
    • ๐Ÿ›  fixed IOC-354 - Deadlock in pooled lifestyle under heavy load
    • ๐Ÿ›  fixed IOC-334 - FacilityConfig is null in facility Init()
    • ๐Ÿ›  fixed IOC-321 - TypedFactory with singleton lifestyle and child containers
    • ๐Ÿ›  fixed IOC-300 - OnCreate does not work for generic components

    ๐Ÿ’ฅ Breaking Changes:

    ๐Ÿ”„ change - the following methods were removed: IHandler IHandlerFactory.Create(ComponentModel model, bool isMetaHandler) IHandler IKernelInternal.AddCustomComponent(ComponentModel model, bool isMetaHandler) void IKernelInternal.RegisterHandler(String key, IHandler handler, bool skipRegistration) IHandler DefaultKernel.AddCustomComponent(ComponentModel model, bool isMetaHandler) the following methods were added: IHandler IKernelInternal.CreateHandler(ComponentModel model) void IKernelInternal.RaiseEventsOnHandlerCreated(IHandler handler) reason - In order to avoid potential deadlocks that were possible when the container was starting and certain combination of open generic components was involved the API was modified to allow limiting the scope of locking when using open generic components. issue - IOC-370 (http://issues.castleproject.org/issue/IOC-370) ๐Ÿ›  fix - the changes occur in internal API and should not impact users. If you are impacted ask for help on the castle-users group on Google Groups.

    ๐Ÿ”„ change - .Properties() methods in registration API have changed behavior and are obsolete now. When calling .Properties() on a component multiple times, subsequent calls with now only be passed properties for which previuos calls returned false. reason - The API was not behaving the way most users expected and the way it was structured it was hard to use. issue - IOC-359 (http://issues.castleproject.org/issue/IOC-359) ๐Ÿ›  fix - use either overload taking PropertyFilter enum, or one of the two new methods: PropertiesIgnore() and PropertiesRequire().

    ๐Ÿ”„ change - AbstractComponentActivator constructor takes IKernelInternal instead of IKernel now ๐Ÿ‘• reason - IKernelInternal exposes a logger which allows activators to log information about their behavior. issue - IOC-359 (http://issues.castleproject.org/issue/IOC-357) ๐Ÿ›  fix - update the signature of your custom activator to take IKernelInternal instead of IKernel.