Castle Windsor is a best of breed, mature Inversion of Control container available for .NET.
See the documentation.
See the releases.
Castle Windsor is © 2004-2017 Castle Project. It is free software, and may be redistributed under the terms of the Apache 2.0 license.
The following conditional compilation symbols are currently defined for Windsor:
Symbol | .NET 4.5 | .NET Standard |
---|---|---|
CASTLE_SERVICES_LOGGING |
✅ | 🚫 |
FEATURE_APPDOMAIN |
✅ | 🚫 |
FEATURE_ASSEMBLIES |
✅ | 🚫 |
FEATURE_EVENTLOG |
✅ | 🚫 |
FEATURE_GAC |
✅ | 🚫 |
FEATURE_GETCALLINGASSEMBLY |
✅ | 🚫 |
FEATURE_ISUPPORTINITIALIZE |
✅ | 🚫 |
FEATURE_NETCORE_REFLECTION_API |
🚫 | ✅ |
FEATURE_PERFCOUNTERS |
✅ | 🚫 |
FEATURE_REFLECTION_METHODBODY |
✅ | 🚫 |
FEATURE_REMOTING |
✅ | 🚫 |
FEATURE_SECURITY_PERMISSIONS |
✅ | 🚫 |
FEATURE_SERIALIZATION |
✅ | 🚫 |
FEATURE_SYSTEM_CONFIGURATION |
✅ | 🚫 |
FEATURE_SYSTEM_WEB |
✅ | 🚫 |
FEATURE_URIMEMBERS |
✅ | 🚫 |
FEATURE_WINFORMS |
✅ | 🚫 |
CASTLE_SERVICES_LOGGING
- enables access toCastle.Services.Logging.log4netIntegration
andCastle.Services.Logging.NLogIntegration
in the logging facility.FEATURE_APPDOMAIN
- enables support for features that make use of an AppDomain in the host.FEATURE_ASSEMBLIES
- usesAssemblyName.GetAssemblyName()
andAssembly.LoadFile()
.FEATURE_EVENTLOG
- uses Castle Core APIs that are based on the Windows Event Log.FEATURE_GAC
- enables support for obtaining assemblies using an assembly's long form name.FEATURE_GETCALLINGASSEMBLY
- enables code that usesSystem.Reflection.Assembly.GetCallingAssembly()
.FEATURE_ISUPPORTINITIALIZE
- enables support for features that make use ofSystem.ComponentModel.ISupportInitialize
.FEATURE_NETCORE_REFLECTION_API
- provides shims to implement missing functionality in .NET Core that have no alternatives.FEATURE_PERFCOUNTERS
- enables code that uses Windows Performance Counters.FEATURE_REFLECTION_METHODBODY
- enables code that usesSystem.Reflection.MethodBase.GetMethodBody()
to get access to the MSIL for a method.FEATURE_REMOTING
- supports remoting on various types including inheriting fromMarshalByRefObject
.FEATURE_SECURITY_PERMISSIONS
- enables the use of CAS andSecurity[Critical|SafeCritical|Transparent]
.FEATURE_SERIALIZATION
- enables support for serialization of dynamic proxies and other types.FEATURE_SYSTEM_CONFIGURATION
- enables features that useSystem.Configuration
and theConfigurationManager
.FEATURE_SYSTEM_WEB
- enables code that usesSystem.Web
andSystem.Web.UI
.FEATURE_URIMEMBERS
- enables code that usesUri.SchemeDelimiter
.FEATURE_WINFORMS
- enables code that uses Windows Forms.
The following conditional compilation symbols are defined for tests only under .NET 4.5:
FEATURE_CODEDOM
- enables code that usesSystem.CodeDom
.FEATURE_CONSOLETRACELISTENER
- enables code that requiresSystem.Diagnostics.ConsoleTraceListener
.FEATURE_THREADABORT
- enables code that usesThread.Abort()
.FEATURE_WPF
- enables code that usesPresentationCore.dll
.NUNIT_SETCULTUREATTRIBUTE
- usesNUnit.Framework.SetCultureAttribute
.NUNIT_TIMEOUTATTRIBUTE
- usesNUnit.Framework.TimeoutAttribute
.