Castle Windsor v3.1.0 Release Notes

Release Date: 2012-08-05 // over 11 years ago
    • ๐Ÿ›  fixed IOC-347 - WithServiceAllInterfaces throws exception (regression)

    ๐Ÿ’ฅ Breaking Changes:

    ๐Ÿ”„ change - Windsor will no longer allow components from parent container to have dependencies from child container when resolving via child container. Class ParentHandlerWithChildResolver was renamed to ParentHandlerWrapper impact - low ๐Ÿ›  fixability - medium description - Previously in some cases, when resolving from child container Windsor would allow component from the parent container to depend on components from a child container. This would lead to all sorts of problems (child coomponents leaking to parent scope, parent components being released prematurely when disposing of the child container etc. Overall this behavior was a mess, and was removed. See http://issues.castleproject.org/issue/IOC-345 for more details ๐Ÿ›  fix - If you were depending on the old behavior it is best to restructure your dependencies so you don't have to have those inverted dependencies. Since each scenario is different it's best to discuss any questions you may have on the user group.

    ๐Ÿ”„ change - IHandler.SupportsAssignable(Type) method has been added impact - low ๐Ÿ›  fixability - easy ๐Ÿ‘ description - This was added to better support IGenericServiceStrategy on generic handlers when calling IKernel.GetAssignableHandlers(Type). Now the handler can decide whether it wants to consider itself assigmable to given service. ๐Ÿ›  fix - This change affects you only if you're implementing custom IHandler. Implementation is dependent on your usage and semantics you want to support for this scenario. When in doubt ask on castle-users-group on Google Groups.

    ๐Ÿ”„ change - System.String, and some other types can no longer be registered as a service in the container impact - low ๐Ÿ›  fixability - easy description - This is something that probably should never have made it into the codebase. Now if you try to register String, a collection of strings or collection of value types Windsor will throw an ArgumentException and not allow you to do that. ๐Ÿ›  fix - If you did register those types in the container change them from being components to being parameters on the components that were depending on them.

    ๐Ÿ”„ change - DependencyModel.IsValueType is renamed to DependencyModel.IsPrimitiveTypeDependency. impact - low ๐Ÿ›  fixability - easy description - This is part of unification of how types that can not be registered as valid services are found and treated in Windsor. Also the property now returns true if TargetItemType is null. Previously it returned false. ๐Ÿ›  fix - Change usages of IsValueType to IsPrimitiveTypeDependency if you depended on behavior when TargetItemType is null, you might also need to check its value to preserve the old behavior.