IWindsorContainer 与 IUnityContainer 之间有什么区别?
What is the difference between IWindsorContainer vs IUnityContainer?
我在不同的服务和接口绑定项目中使用过 IWindsorContainer
和 IUnityContainer
之间的两种类型的容器。但是我不太确定有什么区别?它们有相同的特征吗?如果是,那么在现有的情况下需要开发另一个。或者他们有什么不同?如果是,那是什么?我要用在哪个目的上?我有一个小 documentation 反对这种混乱,但我没有安静地抓住它。因此,如果您让我知道,那么我将不胜感激。提一下,我在这里使用 NHibernet
映射。
这两个容器我都用过,它们之间的巨大差异,多年来使用每个容器一直是 UnityContainer 由一个团队管理,并且仍在扩展。 Windsor 容器在返回实际错误方面不是很好。 UnityContainer 有很好的文档,使用 nuget 或其他一些存储库管理器安装起来非常简单。
这就是我的意思...如果您查看如何使用他们的代码,https://github.com/castleproject/Windsor/blob/master/docs/README.md,例如温莎就非常混乱。
public void Install(IWindsorContainer container, IConfigurationStore store)
{
container.Register(Classes.FromThisAssembly()
.Where(Component.IsInSameNamespaceAs<King>())
.WithService.DefaultInterfaces()
.LifestyleTransient());
}
如果你看一下统一,https://github.com/unitycontainer/unity/blob/master/quickstarts/CS/EventBroker/Src/Stoplight/Program.cs,通过以不同的方式注册它们会变得更加清楚。使用 Unity 时的错误代码也更加清晰。
IUnityContainer container = new UnityContainer()
.AddNewExtension<SimpleEventBrokerExtension>()
.RegisterType<ILogger, TraceLogger>()
.RegisterType<IStoplightTimer, RealTimeTimer>();
查看以下内容 link。这可能会对您有所帮助 https://visualstudiomagazine.com/articles/2014/09/25/refactor-5.aspx
我在不同的服务和接口绑定项目中使用过 IWindsorContainer
和 IUnityContainer
之间的两种类型的容器。但是我不太确定有什么区别?它们有相同的特征吗?如果是,那么在现有的情况下需要开发另一个。或者他们有什么不同?如果是,那是什么?我要用在哪个目的上?我有一个小 documentation 反对这种混乱,但我没有安静地抓住它。因此,如果您让我知道,那么我将不胜感激。提一下,我在这里使用 NHibernet
映射。
这两个容器我都用过,它们之间的巨大差异,多年来使用每个容器一直是 UnityContainer 由一个团队管理,并且仍在扩展。 Windsor 容器在返回实际错误方面不是很好。 UnityContainer 有很好的文档,使用 nuget 或其他一些存储库管理器安装起来非常简单。
这就是我的意思...如果您查看如何使用他们的代码,https://github.com/castleproject/Windsor/blob/master/docs/README.md,例如温莎就非常混乱。
public void Install(IWindsorContainer container, IConfigurationStore store)
{
container.Register(Classes.FromThisAssembly()
.Where(Component.IsInSameNamespaceAs<King>())
.WithService.DefaultInterfaces()
.LifestyleTransient());
}
如果你看一下统一,https://github.com/unitycontainer/unity/blob/master/quickstarts/CS/EventBroker/Src/Stoplight/Program.cs,通过以不同的方式注册它们会变得更加清楚。使用 Unity 时的错误代码也更加清晰。
IUnityContainer container = new UnityContainer()
.AddNewExtension<SimpleEventBrokerExtension>()
.RegisterType<ILogger, TraceLogger>()
.RegisterType<IStoplightTimer, RealTimeTimer>();
查看以下内容 link。这可能会对您有所帮助 https://visualstudiomagazine.com/articles/2014/09/25/refactor-5.aspx