<PackageReference Include="Castle.Windsor" Version="4.1.1" />
    
    
API Differences between 4.1.1 and 5.0.0-beta001
	
		230 Additions
	
	
		80 Removals
	
Castle.Core
Castle.Core.Internal
Castle.Facilities.TypedFactory
	- 
		public class DefaultTypedFactoryComponentSelector : ITypedFactoryComponentSelector
		
			- protected virtual Func<IKernelInternal, IReleasePolicy, object> BuildFactoryComponent(MethodInfo method, string componentName, Type componentType, Arguments additionalArguments)
 
			- protected virtual Arguments GetArguments(MethodInfo method, object[] arguments)
 
			- protected virtual Func<IKernelInternal, IReleasePolicy, object> BuildFactoryComponent(MethodInfo method, string componentName, Type componentType, IDictionary additionalArguments)
 
			- protected virtual IDictionary GetArguments(MethodInfo method, object[] arguments)
 
		
	 
	- 
		public class TypedFactoryComponentResolver
		
	
 
Castle.Facilities.TypedFactory.Internal
Castle.MicroKernel
	- 
		public class Arguments : IDictionary, ICollection, IEnumerable
		
			- protected IDictionary arguments
 
			- public Arguments()
 
			- public Arguments(Arguments arguments)
 
			- public static Arguments FromNamed(IEnumerable<KeyValuePair<string, object>> arguments)
 
			- public static Arguments FromProperties(object instance)
 
			- public static Arguments FromTyped(IEnumerable<KeyValuePair<Type, object>> arguments)
 
			- public static Arguments FromTyped(IEnumerable<object> arguments)
 
			- public ICollection Keys { get; }
 
			- public ICollection Values { get; }
 
			- public Arguments(object namedArgumentsAsAnonymousType, IArgumentsComparer[] customComparers)
 
			- public Arguments(IDictionary values, IArgumentsComparer[] customComparers)
 
			- public Arguments(object[] typedArguments, IArgumentsComparer[] customComparers)
 
			- public Arguments(IArgumentsComparer[] customComparers)
 
			- public Arguments Add(IEnumerable<KeyValuePair<object, object>> arguments)
 
			- public Arguments AddNamed(string key, object value)
 
			- public Arguments AddNamed(IEnumerable<KeyValuePair<string, object>> arguments)
 
			- public Arguments AddProperties(object instance)
 
			- public Arguments AddTyped(Type key, object value)
 
			- public Arguments AddTyped<TDependencyType>(TDependencyType value)
 
			- public Arguments AddTyped(IEnumerable<object> arguments)
 
			- public Arguments AddTyped(object[] arguments)
 
			- public void Clear()
 
			- public Arguments Clone()
 
			- public IEnumerator<KeyValuePair<object, object>> GetEnumerator()
 
			- public IDictionaryEnumerator GetEnumerator()
 
		
	 
	- 
		public class DefaultKernel : IKernel, IKernelEvents, IDisposable, IKernelInternal
		
			- public virtual object this[string key] { get; }
 
			- public virtual object this[Type service] { get; }
 
			- public virtual void AddComponent(string key, Type classType)
 
			- public void AddComponent(string key, Type classType, LifestyleType lifestyle)
 
			- public void AddComponent(string key, Type classType, LifestyleType lifestyle, bool overwriteLifestyle)
 
			- public virtual void AddComponent(string key, Type serviceType, Type classType)
 
			- public void AddComponent(string key, Type serviceType, Type classType, LifestyleType lifestyle)
 
			- public void AddComponent(string key, Type serviceType, Type classType, LifestyleType lifestyle, bool overwriteLifestyle)
 
			- public void AddComponent<T>()
 
			- public void AddComponent<T>(LifestyleType lifestyle)
 
			- public void AddComponent<T>(LifestyleType lifestyle, bool overwriteLifestyle)
 
			- public void AddComponent<T>(Type serviceType)
 
			- public void AddComponent<T>(Type serviceType, LifestyleType lifestyle)
 
			- public void AddComponent<T>(Type serviceType, LifestyleType lifestyle, bool overwriteLifestyle)
 
			- public void AddComponentInstance(string key, object instance)
 
			- public void AddComponentInstance(string key, Type serviceType, object instance)
 
			- public void AddComponentInstance(string key, Type serviceType, Type classType, object instance)
 
			- public void AddComponentInstance<T>(object instance)
 
			- public void AddComponentInstance<T>(Type serviceType, object instance)
 
			- public virtual void AddComponentWithExtendedProperties(string key, Type classType, IDictionary extendedProperties)
 
			- public virtual void AddComponentWithExtendedProperties(string key, Type serviceType, Type classType, IDictionary extendedProperties)
 
			- public virtual IKernel AddFacility(string key, IFacility facility)
 
			- public IKernel AddFacility<T>(string key) where T : IFacility
 
			- public IKernel AddFacility<T>(string key, Action<T> onCreate) where T : IFacility
 
			- protected CreationContext CreateCreationContext(IHandler handler, Type requestedType, Arguments additionalArguments, CreationContext parent, IReleasePolicy policy)
 
			- protected CreationContext CreateCreationContext(IHandler handler, Type requestedType, IDictionary additionalArguments, CreationContext parent, IReleasePolicy policy)
 
			- public virtual IHandler[] GetHandlers()
 
			- public object Resolve(string key, IDictionary arguments)
 
			- public object Resolve(string key, object argumentsAsAnonymousType)
 
			- public virtual object Resolve(string key, Type service, Arguments arguments)
 
			- public T Resolve<T>(Arguments arguments)
 
			- public virtual object Resolve(string key, Type service, IDictionary arguments)
 
			- public T Resolve<T>(IDictionary arguments)
 
			- public T Resolve<T>(object argumentsAsAnonymousType)
 
			- public T Resolve<T>(string key, Arguments arguments)
 
			- public T Resolve<T>(string key, IDictionary arguments)
 
			- public object Resolve(Type service, Arguments arguments)
 
			- public object Resolve(Type service, IDictionary arguments)
 
			- public object Resolve(Type service, object argumentsAsAnonymousType)
 
			- public Array ResolveAll(Type service, Arguments arguments)
 
			- public TService[] ResolveAll<TService>(Arguments arguments)
 
			- public Array ResolveAll(Type service, IDictionary arguments)
 
			- public Array ResolveAll(Type service, object argumentsAsAnonymousType)
 
			- public TService[] ResolveAll<TService>(object argumentsAsAnonymousType)
 
			- public TService[] ResolveAll<TService>(IDictionary arguments)
 
			- protected object ResolveComponent(IHandler handler, Type service, Arguments additionalArguments, IReleasePolicy policy)
 
			- protected object ResolveComponent(IHandler handler, Type service, IDictionary additionalArguments, IReleasePolicy policy)
 
		
	 
	- 
		public interface IComponentModelBuilder
		
	
 
	- 
		public interface IKernel : IKernelEvents, IDisposable
		
			- object this[string key] { get; }
 
			- object this[Type service] { get; }
 
			- void AddComponent(string key, Type classType)
 
			- void AddComponent(string key, Type classType, LifestyleType lifestyle)
 
			- void AddComponent(string key, Type classType, LifestyleType lifestyle, bool overwriteLifestyle)
 
			- void AddComponent(string key, Type serviceType, Type classType)
 
			- void AddComponent(string key, Type serviceType, Type classType, LifestyleType lifestyle)
 
			- void AddComponent(string key, Type serviceType, Type classType, LifestyleType lifestyle, bool overwriteLifestyle)
 
			- void AddComponent<T>()
 
			- void AddComponent<T>(LifestyleType lifestyle)
 
			- void AddComponent<T>(LifestyleType lifestyle, bool overwriteLifestyle)
 
			- void AddComponent<T>(Type serviceType)
 
			- void AddComponent<T>(Type serviceType, LifestyleType lifestyle)
 
			- void AddComponent<T>(Type serviceType, LifestyleType lifestyle, bool overwriteLifestyle)
 
			- void AddComponentInstance<T>(object instance)
 
			- void AddComponentInstance<T>(Type serviceType, object instance)
 
			- void AddComponentInstance(string key, object instance)
 
			- void AddComponentInstance(string key, Type serviceType, object instance)
 
			- void AddComponentInstance(string key, Type serviceType, Type classType, object instance)
 
			- void AddComponentWithExtendedProperties(string key, Type classType, IDictionary extendedProperties)
 
			- void AddComponentWithExtendedProperties(string key, Type serviceType, Type classType, IDictionary extendedProperties)
 
			- IKernel AddFacility(string key, IFacility facility)
 
			- IKernel AddFacility<T>(string key) where T : IFacility
 
			- IKernel AddFacility<T>(string key, Action<T> onCreate) where T : IFacility
 
			- IHandler[] GetHandlers()
 
			- object Resolve(string key, object argumentsAsAnonymousType)
 
			- object Resolve(string key, IDictionary arguments)
 
			- object Resolve(Type service, Arguments arguments)
 
			- object Resolve(Type service, IDictionary arguments)
 
			- object Resolve(Type service, object argumentsAsAnonymousType)
 
			- T Resolve<T>(Arguments arguments)
 
			- T Resolve<T>(IDictionary arguments)
 
			- T Resolve<T>(object argumentsAsAnonymousType)
 
			- T Resolve<T>(string key, Arguments arguments)
 
			- object Resolve(string key, Type service, Arguments arguments)
 
			- T Resolve<T>(string key, IDictionary arguments)
 
			- object Resolve(string key, Type service, IDictionary arguments)
 
			- Array ResolveAll(Type service, Arguments arguments)
 
			- Array ResolveAll(Type service, IDictionary arguments)
 
			- Array ResolveAll(Type service, object argumentsAsAnonymousType)
 
			- TService[] ResolveAll<TService>(Arguments arguments)
 
			- TService[] ResolveAll<TService>(IDictionary arguments)
 
			- TService[] ResolveAll<TService>(object argumentsAsAnonymousType)
 
		
	 
	- 
		public interface IKernelInternal : IKernel, IKernelEvents, IDisposable
		
			- IHandler LoadHandlerByName(string key, Type service, Arguments arguments)
 
			- IHandler LoadHandlerByType(string key, Type service, Arguments arguments)
 
			- IHandler LoadHandlerByName(string key, Type service, IDictionary arguments)
 
			- IHandler LoadHandlerByType(string key, Type service, IDictionary arguments)
 
			- object Resolve(Type service, Arguments arguments, IReleasePolicy policy, bool ignoreParentContext = false)
 
			- object Resolve(string key, Type service, Arguments arguments, IReleasePolicy policy)
 
			- Array ResolveAll(Type service, Arguments arguments, IReleasePolicy policy)
 
			- object Resolve(Type service, IDictionary arguments, IReleasePolicy policy, bool ignoreParentContext = false)
 
			- object Resolve(string key, Type service, IDictionary arguments, IReleasePolicy policy)
 
			- Array ResolveAll(Type service, IDictionary arguments, IReleasePolicy policy)
 
		
	 
Castle.MicroKernel.Context
	- 
		public class CreationContext : ISubDependencyResolver
		
			- public Arguments AdditionalArguments { get; }
 
			- public IDictionary AdditionalArguments { get; }
 
			- public CreationContext(IHandler handler, IReleasePolicy releasePolicy, Type requestedType, Arguments additionalArguments, ITypeConverter converter, CreationContext parent)
 
			- public CreationContext(IHandler handler, IReleasePolicy releasePolicy, Type requestedType, IDictionary additionalArguments, ITypeConverter converter, CreationContext parent)
 
		
	 
Castle.MicroKernel.Internal
Castle.MicroKernel.Lifestyle.Scoped
Castle.MicroKernel.ModelBuilder
Castle.MicroKernel.ModelBuilder.Descriptors
Castle.MicroKernel.Registration
	- 
		public static class AllTypes
		
	
 
	- 
		public class AllTypesOf
		
	
 
	- 
		public class BasedOnDescriptor : IRegistration
		
	
 
	- 
		public static class ComponentDependencyRegistrationExtensions
		
	
 
	- 
		public class ComponentRegistration<TService> : IRegistration
		
	
 
	- 
		public sealed delegate DynamicParametersDelegate : MulticastDelegate
		
	
 
	- 
		public sealed delegate DynamicParametersResolveDelegate : MulticastDelegate
		
	
 
	- 
		public sealed delegate DynamicParametersWithContextResolveDelegate : MulticastDelegate
		
			- public virtual IAsyncResult BeginInvoke(IKernel kernel, CreationContext creationContext, Arguments arguments, AsyncCallback callback, object object)
 
			- public virtual IAsyncResult BeginInvoke(IKernel kernel, CreationContext creationContext, IDictionary parameters, AsyncCallback callback, object object)
 
			- public virtual ComponentReleasingDelegate Invoke(IKernel kernel, CreationContext creationContext, Arguments arguments)
 
			- public virtual ComponentReleasingDelegate Invoke(IKernel kernel, CreationContext creationContext, IDictionary parameters)
 
		
	 
Castle.MicroKernel.Resolvers
Castle.Windsor
	- 
		public interface IWindsorContainer : IDisposable
		
			- object this[string key] { get; }
 
			- object this[Type service] { get; }
 
			- IWindsorContainer AddComponent(string key, Type classType)
 
			- IWindsorContainer AddComponent(string key, Type serviceType, Type classType)
 
			- IWindsorContainer AddComponent<T>()
 
			- IWindsorContainer AddComponent<T>(string key)
 
			- IWindsorContainer AddComponent<I, T>()
 
			- IWindsorContainer AddComponent<I, T>(string key)
 
			- IWindsorContainer AddComponentLifeStyle(string key, Type classType, LifestyleType lifestyle)
 
			- IWindsorContainer AddComponentLifeStyle(string key, Type serviceType, Type classType, LifestyleType lifestyle)
 
			- IWindsorContainer AddComponentLifeStyle<T>(LifestyleType lifestyle)
 
			- IWindsorContainer AddComponentLifeStyle<T>(string key, LifestyleType lifestyle)
 
			- IWindsorContainer AddComponentLifeStyle<I, T>(LifestyleType lifestyle)
 
			- IWindsorContainer AddComponentLifeStyle<I, T>(string key, LifestyleType lifestyle)
 
			- IWindsorContainer AddComponentProperties<I, T>(IDictionary extendedProperties)
 
			- IWindsorContainer AddComponentProperties<I, T>(string key, IDictionary extendedProperties)
 
			- IWindsorContainer AddComponentWithProperties(string key, Type classType, IDictionary extendedProperties)
 
			- IWindsorContainer AddComponentWithProperties(string key, Type serviceType, Type classType, IDictionary extendedProperties)
 
			- IWindsorContainer AddComponentWithProperties<T>(IDictionary extendedProperties)
 
			- IWindsorContainer AddComponentWithProperties<T>(string key, IDictionary extendedProperties)
 
			- IWindsorContainer AddFacility(string idInConfiguration, IFacility facility)
 
			- IWindsorContainer AddFacility<TFacility>(string idInConfiguration) where TFacility : IFacility
 
			- IWindsorContainer AddFacility<TFacility>(string idInConfiguration, Action<TFacility> configureFacility) where TFacility : IFacility
 
			- object Resolve(Type service, Arguments arguments)
 
			- object Resolve(Type service, IDictionary arguments)
 
			- object Resolve(Type service, object argumentsAsAnonymousType)
 
			- T Resolve<T>(Arguments arguments)
 
			- T Resolve<T>(IDictionary arguments)
 
			- T Resolve<T>(object argumentsAsAnonymousType)
 
			- T Resolve<T>(string key, Arguments arguments)
 
			- object Resolve(string key, Type service, Arguments arguments)
 
			- T Resolve<T>(string key, IDictionary arguments)
 
			- T Resolve<T>(string key, object argumentsAsAnonymousType)
 
			- object Resolve(string key, Type service, IDictionary arguments)
 
			- object Resolve(string key, Type service, object argumentsAsAnonymousType)
 
			- object Resolve(string key, IDictionary arguments)
 
			- object Resolve(string key, object argumentsAsAnonymousType)
 
			- Array ResolveAll(Type service, Arguments arguments)
 
			- T[] ResolveAll<T>(Arguments arguments)
 
			- Array ResolveAll(Type service, IDictionary arguments)
 
			- Array ResolveAll(Type service, object argumentsAsAnonymousType)
 
			- T[] ResolveAll<T>(IDictionary arguments)
 
			- T[] ResolveAll<T>(object argumentsAsAnonymousType)
 
		
	 
	- 
		public class WindsorContainer : IWindsorContainer, IDisposable
		
			- public virtual object this[string key] { get; }
 
			- public virtual object this[Type service] { get; }
 
			- public virtual IWindsorContainer AddComponent(string key, Type classType)
 
			- public virtual IWindsorContainer AddComponent(string key, Type serviceType, Type classType)
 
			- public IWindsorContainer AddComponent<T>()
 
			- public IWindsorContainer AddComponent<T>(string key)
 
			- public IWindsorContainer AddComponent<I, T>(string key)
 
			- public IWindsorContainer AddComponent<I, T>()
 
			- public IWindsorContainer AddComponentLifeStyle(string key, Type classType, LifestyleType lifestyle)
 
			- public IWindsorContainer AddComponentLifeStyle(string key, Type serviceType, Type classType, LifestyleType lifestyle)
 
			- public IWindsorContainer AddComponentLifeStyle<T>(LifestyleType lifestyle)
 
			- public IWindsorContainer AddComponentLifeStyle<I, T>(LifestyleType lifestyle)
 
			- public IWindsorContainer AddComponentLifeStyle<T>(string key, LifestyleType lifestyle)
 
			- public IWindsorContainer AddComponentLifeStyle<I, T>(string key, LifestyleType lifestyle)
 
			- public IWindsorContainer AddComponentProperties<I, T>(IDictionary extendedProperties)
 
			- public IWindsorContainer AddComponentProperties<I, T>(string key, IDictionary extendedProperties)
 
			- public virtual IWindsorContainer AddComponentWithProperties(string key, Type classType, IDictionary extendedProperties)
 
			- public virtual IWindsorContainer AddComponentWithProperties(string key, Type serviceType, Type classType, IDictionary extendedProperties)
 
			- public IWindsorContainer AddComponentWithProperties<T>(IDictionary extendedProperties)
 
			- public IWindsorContainer AddComponentWithProperties<T>(string key, IDictionary extendedProperties)
 
			- public virtual IWindsorContainer AddFacility(string idInConfiguration, IFacility facility)
 
			- public IWindsorContainer AddFacility<T>(string idInConfiguration) where T : IFacility
 
			- public IWindsorContainer AddFacility<T>(string idInConfiguration, Action<T> configureFacility) where T : IFacility
 
			- public virtual object Resolve(Type service, Arguments arguments)
 
			- public virtual object Resolve(Type service, IDictionary arguments)
 
			- public virtual object Resolve(Type service, object argumentsAsAnonymousType)
 
			- public virtual object Resolve(string key, Type service, Arguments arguments)
 
			- public T Resolve<T>(Arguments arguments)
 
			- public virtual T Resolve<T>(string key, Arguments arguments)
 
			- public virtual object Resolve(string key, Type service, IDictionary arguments)
 
			- public virtual object Resolve(string key, Type service, object argumentsAsAnonymousType)
 
			- public T Resolve<T>(IDictionary arguments)
 
			- public T Resolve<T>(object argumentsAsAnonymousType)
 
			- public virtual T Resolve<T>(string key, IDictionary arguments)
 
			- public virtual T Resolve<T>(string key, object argumentsAsAnonymousType)
 
			- public virtual object Resolve(string key, IDictionary arguments)
 
			- public virtual object Resolve(string key, object argumentsAsAnonymousType)
 
			- public Array ResolveAll(Type service, Arguments arguments)
 
			- public T[] ResolveAll<T>(Arguments arguments)
 
			- public Array ResolveAll(Type service, IDictionary arguments)
 
			- public Array ResolveAll(Type service, object argumentsAsAnonymousType)
 
			- public T[] ResolveAll<T>(IDictionary arguments)
 
			- public T[] ResolveAll<T>(object argumentsAsAnonymousType)
 
		
	 
	- 
		public static class WindsorContainerExtensions