gpt4 book ai didi

asp.net-mvc - IWindsorContainer 与 IUnityContainer 有什么区别?

转载 作者:行者123 更新时间:2023-12-02 06:12:22 25 4
gpt4 key购买 nike

我在不同的项目中使用过 IWindsorContainer 和 IUnityContainer 之间的两种类型的容器来进行服务和接口(interface)绑定(bind)。但是我不太确定有什么区别?它们有相同的功能吗?如果是,那么在现有的情况下还需要开发另一个吗?或者他们有一些区别吗?如果是,那是什么?我将使用哪个目的而不是哪个目的?我有一个小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>();

关于asp.net-mvc - IWindsorContainer 与 IUnityContainer 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42336702/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com