All Versions
Latest Version
Avg Release Cycle
196 days
Latest Release
65 days ago

Changelog History
Page 1

  • v5.0.1

    September 18, 2019

    πŸ›  Bugfixes

    • πŸ›  Fix ProxyOptions equality with additional interfaces (@DamirAinullin, #477)
    • πŸ‘» WCF Facility: Fix exception message (@DamirAinullin, #476)
    • ASP.NET MVC Facility: Fix controller lookup to be case insensitive (@Yitzchok, #480)
    • ASP.NET Core Facility: FrameworkDependencyResolver must not throw NRE if dependency has no type (e.g. depending on a named component) (@dariuslf, #489)
    • ASP.NET Core Facility: Register ViewComponents and TagHelpers correctly (@dariuslf, #489)
    • ASP.NET Core Facility: Allow crosswiring multiple implementations of the same service (@dariuslf, #489)
    • ASP.NET Core Facility: Treat TagHelper classes with __Generated__ in their name (e.g. TagHelpers generated for ViewComponents) as framework classes (@dariuslf, #489)
  • v5.0.0

    February 12, 2019

    πŸ›  Bugfixes

    • πŸ›  Fixed first-chance HandlerException for optional parameters (@jnm2, #450)
  • v5.0.0-beta001

    October 26, 2018

    ✨ Enhancements

    • ⬆️ Upgraded to Castle.Core 4.2.0 to 4.3.1 (@fir3pho3nixx, #413)
    • 🌐 Created Castle.Facilities.AspNetCore facility to support ASP.NET Core web applications on .NET Core and .NET Framework (@fir3pho3nixx, #120)
    • 🌐 Created Castle.Facilities.AspNet.Mvc facility to support ASP.NET MVC web applications on .NET Framework (@fir3pho3nixx, #283)
    • 🌐 Created Castle.Facilities.AspNet.WebApi facility to support ASP.NET Web API IIS and self hosted applications on .NET Framework (@fir3pho3nixx, #283)
    • βž• Added XML documentation to BeginScope and RequireScope lifetime extensions (@jonorossi)
    • ⬆️ Upgraded build to use NUnit Adapters (@fir3pho3nixx, #243)
    • πŸ‘‰ Make formatting of type names with TypeUtil.ToCSharpString (and hence in diagnostic messages) resemble C# more closely (@stakx, #404, #406)

    πŸ’₯ Breaking Changes

    • 🚚 Built-in System.Web support has been moved to the new Castle.Facilities.AspNet.SystemWeb facility (@fir3pho3nixx, #283)
    • βœ‚ Removed obsolete ActAs, Parameters, Properties and ServiceOverrides methods from component registration (@fir3pho3nixx, #338)
    • βœ‚ Removed obsolete indexer, AddComponent*, AddFacility and Resolve methods from IKernel and IWindsorContainer (@fir3pho3nixx, #338)
    • πŸ”§ Facility XML configuration specifying an 'id' attribute will now throw, it has been ignored since v3.0 (@fir3pho3nixx, #338)
    • βœ‚ Removed deprecated classes AllTypes and AllTypesOf (@fir3pho3nixx, #338)
    • βœ‚ Removed deprecated BasedOn methods that reset registrations when fluently chained (@fir3pho3nixx, #338)
    • βœ‚ Removed deprecated member LifestyleHandlerType on CustomLifestyleAttribute (@fir3pho3nixx, #338)
    • βœ‚ Removed Event Wiring, Factory Support and Synchronize facilities (@jonorossi, #403)
    • ♻️ Arguments class and Resolve overloads refactor (@fir3pho3nixx, @jonorossi, #444)
      • Removed WindsorContainer.Resolve(object/IDictionary) overloads in favour of new WindsorContainer.Resolve(Arguments)
      • Reworked Arguments class, including to no longer implement IDictionary
      • Removed IArgumentsComparer[] constructors from Arguments
      • Added WindsorContainer.Resolve(IEnumerable<KeyValuePair<string, object>>) extension methods
      • Changed CreationContext.AdditionalArguments to use Arguments instead of IDictionary
      • Replaced ComponentDependencyRegistrationExtensions(Insert, InsertAnonymous, InsertTyped, InsertTypedCollection) with Add, AddNamed and AddTyped Arguments instance methods
      • Changed ComponentRegistration.DependsOn and ComponentRegistration.DynamicParameters to use Arguments via DynamicParametersDelegate
      • Added ComponentRegistration.DependsOn(Arguments) overload
      • Changed ComponentModel CustomDependencies and ExtendedProperties to use Arguments instead of IDictionary
      • Changed IComponentModelBuilder.BuildModel to use Arguments instead of IDictionary
      • Changed ILazyComponentLoader.Load to use Arguments instead of IDictionary
  • v4.1.1

    October 14, 2018

    πŸ›  Bugfixes

    • πŸ›  Fixed components resolved from typed factories being disposed along with unrelated objects (@jnm2, #439)
  • v4.1.0

    September 28, 2017

    πŸ›  Bugfixes

    • πŸ›  Fix warnings regarding non-existent System.ComponentModel.TypeConverter NuGet package by updating minimum Castle Core version to 4.1.0 (#321)
    • πŸ›  Fix disposal of faulted WCF client channels (@jberezanski, #322)
    • πŸ›  Fix binding errors because assembly version had too much detail, assembly version is now x.0.0.0 (@fir3pho3nixx, #329)
    • ⚑️ Update Castle Core to 4.2.0 to resolve assembly version problems because Castle Core also had too much detail
    • πŸ”’ Explicit package versioning applied within solution to avoid maligned NuGet upgrades for lock step versioned packages (@fir3pho3nixx, castleproject/Core#292)
    • πŸ›  Fix open generic handler state issues where wrong constructor gets chosen for open generic service types (@fir3pho3nixx, #136)
    • πŸ›  Fixed typed factory out of order disposal (@jnm2, #344)

    πŸ—„ Deprecations

    • πŸ”§ Logging Facility's LoggerImplementation enum, UseLog4Net and UseNLog methods are deprecated in favour of LogUsing<T>, this includes the loggingApi property for XML configuration (@jonorossi, #327)
  • v4.0.0

    July 12, 2017

    πŸ’₯ Breaking Changes

    • βœ‚ Remove .NET 3.5, .NET 4.0 and .NET 4.0 Client Profile support (@fir3pho3nixx, #173, #180, #177, #185)
    • ⚑️ Update Castle.Core dependency to 4.0.0 (@alinapopa, #235)

    ✨ Enhancements

    πŸ›  Bugfixes

    • βœ… Fix IL interpretation of Ldarg_N from LOCAL 0 to LOCAL [0,1] in OpCodes so test FluentRegistrationTestCase.Can_publish_events_via_AllTypes could publish events again on Windows 10 Home (build 14393.693) VS 2015 Update 3 using .NET 4.x (@fir3pho3nixx, #168)
    • πŸ›  Fix race condition in PoolableLifestyleManager creating a pool (@krinmik, #72)
    • πŸ›  Fix race condition in WindsorContainer not generating unique names (#301)
  • v3.4.0

    January 23, 2017
    • πŸ›  Fix case sensitivity issue that can cause UsingFactoryMethod to fail (@dohansen, #116)
    • πŸ›  Fix project and icon URLs in NuGet packages
    • βž• Add PDB source indexing (@ivan-danilov, #137)
    • πŸ›  Fix unit test with weak reference broken by garbage collector changes in .NET 4.6.x (@ivan-danilov, #138)
    • πŸ›  Fix performance counter instances hanging around after the process using Windsor has ended (@mackenzieajudd, #146, #149)
    • πŸ›  Fix version of Castle.Core dependency in NuGet packages to indicate Castle.Core 4.0 is incompatible (#161)
  • v3.3.0

    May 18, 2014
    • πŸ— implemented #57 - build NuGet and Zip packages from TeamCity - contributed by Blair Conrad (@blairconrad)
    • 🚚 implemented #53 - Remove dependency on IKernel/IWindsorContainer from CallContextLifetimeScope
    • implemented #52 - Add option to start startable components manually - based on pull request #37 from @jfojtl
    • πŸ‘ implemented #51 - CollectionResolved should support read-only collections in .NET 4.5+
    • πŸ’… implemented #45 - use HttpApplication.RegisterModule in .NET 4.5 for PerWebRequest lifestyle - contributed by @BredStik
    • πŸ›  fixed #59 - Fixed missing DuplexChannelBuilder GetChannel methods. - contributed by David Welch (@djwelch)
    • πŸ›  fixed #50 - XML Config Array Parameters not populating when registering multiple dependencies - contributed by Dale Francis (@dalefrancis88)
    • πŸ›  fixed #47 - Fixed 'consut' typo to 'consult'. - contributed by Mads TjΓΈrnelund Toustrup (@madstt)
    • πŸ›  fixed #38 - Pooled items not being disposed properly - contributed by @mvastarelli
    • πŸ›  fixed #34 - Deadlock - DefaultNamingSubsystem.GetHandlers() vs DefaultGenericHandler.type2SubHandler - contributed by Anton Iermolenko (@anton-iermolenko)
    • πŸ›  fixed #30 - Attempting to resolve a non-generic type with a backing generic implementation causes an exception to be thrown
  • v3.2.1

    July 21, 2013
    • πŸ›  fixed IOC-349 - SerializationException - Type is not resolved for member "Castle.MicroKernel.Lifestyle.Scoped.CallContextLifetimeScope+SerializationReference, ...
  • v3.2.0

    February 16, 2013
    • 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 ( πŸ›  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 ( πŸ›  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 ( πŸ›  fix - update the signature of your custom activator to take IKernelInternal instead of IKernel.