inversion-of-control相关内容

MVVM-在ViewModels中使用实体

我真的只是从MVVM,IoC和依赖注入开始,我遇到了一个绊脚石,我不知道如何解决,但我确实知道它为什么会发生。 我将Castle Windsor用于DI和IoC功能,并将MVVM Light用作WPF应用程序中的MVVM框架。使用本教程让Castle Windsor创建一个 MainPageViewModel ,该 IGroupRepository 注入到构造函数中。我已经在温莎城堡中对此进 ..

温莎城堡命令模式

我试图使用Castle Windsor实现Command,CommandHandler和CommandDispatcher模式,而无需手动要求容器根据Command类型(通常被认为是反模式)来解析CommandHandler。 我找到了此较早的文章,但是 ITypedFactoryComponentSelector 的实现已更改,因此现在它返回一个Func,而不是 TypedFactoryC ..

使用StructureMap链接容器

是否可以像在WindsorContainer.AddChildContainer()中那样在StructureMap中将容器链接在一起? 我想实现3个容器级别; -1个页面请求级别 -1个会话级别 -1个应用程序级别 这些随后将被链接在一起,因此只有一个实例 容器的级别实际上并不重要,只是是否有能力将它们链接在一起。 解决方案 这似乎可以解决问题,不确定是否有更好的 ..
发布时间:2020-09-30 00:01:20 其他开发

温莎城堡:如何防止工厂创建的对象中的圆形引用被创建的对象返回工厂

我正在使用温莎城堡作为我的IoC容器,但遇到了一些问题。最好用代码解释一下,因此我将尝试一下。 我有一个工厂类,应该为我提供某些接口的实现: 公共接口IObjectCreatorFactory { IObjectCreator GetObjectCreator(Type objectType); } 公共接口IObjectCreator { T CreateObject ..

温莎城堡问题

我的城堡核心存在问题,我试图将两个不同的数据库连接注入到特定的存储库。 公共类Repository1 { public Repository1(System.Data.Common.DbConnection conn){} } 公共类Repository2 { 公共Repository2(System.Data.Common.DbConnection conn){} } ..
发布时间:2020-09-29 23:54:50 C#/.NET

在远程方案中使用IOC

我正在努力让IOC在远程场景下工作。我已经设置了应用程序服务器来发布通过XML配置的服务(SingleCall)。 此工作方式众所周知, RemotingConfiguration.Configure(ConfigFile,true); 让我说我的服务看起来像这样(伪代码) 公共类TourService:ITourService { IReposito ..
发布时间:2020-09-29 23:54:36 C#/.NET

使用IoC时,单元测试的策略应该是什么?

在我了解了有关依赖注入和IoC的所有知识之后,我决定尝试在我们的应用程序(这是一个5万个LOC多层网络应用程序,因此不希望它过于矫健)中使用Windsor Container。我使用了一个简单的静态类来包装容器,并在启动应用程序时对其进行了初始化,目前效果还不错。 我的问题是关于单元测试的。我知道DI将使我有可能将类协作者的存根/模拟实现注入被测类,从而使我的生活更加轻松。我已经使用这种技术 ..

温莎城堡或Spring.NET-优点和缺点

昨天,当我偶然发现有关这两种新的IoC工具的文章时,我正在阅读该站点上的一些文章。我应该首先学习哪个? 解决方案 Castle.Windsor或Spring.NET都不是新的。 p> 温莎城堡(Castle Windsor)始于2004年底 Spring.NET始于2006年初 li> 它们是两个可比较的 DI容器,其本质上旨在提供相同的服务,因此您无需先学习一个,再也不需要 ..
发布时间:2020-09-29 23:52:06 其他开发

对SignalR和Castle Windsor进行适当的Hub依赖项生命周期管理

我有一些SignalR集线器,可能需要访问一些瞬态和单例依赖项。挂接Hub的创建很容易并且可以正常工作,但是SignalR会对创建的Hub进行自己的Dispose()调用,而不是通知依赖项解析器并让其参与处理。 如果依赖项被注册为单例,这没什么大不了的,但是如果将它们注册为瞬态,则它们将永远不会被处置(如果需要),并且温莎将使它们保持生存直到温莎 我看到几种可能的处理方式... ..

温莎城堡如何响应实现多个接口的类?

例如,我有两个接口:ICustomerService和IOrderService,每个接口都有几个函数,例如GetCustomer,GetOrder等。 我希望一个类实现两个接口:服务器。 温莎城堡对此有何反应? 首先有可能吗? 当我基于两个接口之一解析Server对象时,会得到相同的对象吗? 当我有一个在其参数中同时包含两个接口的构造函数时,会发生什么?仍然会构造一个对象。 ..
发布时间:2020-09-29 23:49:28 其他开发

温莎集装箱:如何指定公共财产不应由集装箱填充?

实例化一个类时,默认情况下,Windsor将该类的所有公共属性视为可选依赖项,并尝试满足它们。就我而言,这会创建一个相当复杂的循环依赖关系,从而导致我的应用程序挂起。 我如何明确告诉温莎城堡它不应该试图满足公共财产的要求?我认为必须有某种程度的属性。但是我找不到它,所以请让我知道合适的名称空间/程序集。 如果有没有属性的方法(例如Xml Configuration或configurat ..

在Windows Forms应用程序中使用Castle.Windsor

到目前为止,我一直在使用ASP.NET MVC在Castle.Windsor中学习IoC / DI,但是我有一个在Windows Forms中完成的辅助项目,我想知道是否存在一种有效的方法来为此使用它。 我的问题在于创建表单,服务等。在ASP.NET MVC中,有一种“激活器”可以在后台进行此操作,但是Windows窗体中不是这种情况。我必须创建一个像 var form = new fcls ..
发布时间:2020-09-29 23:43:56 其他开发

Castle-Windsor是否通过XML配置支持ForwardedTypes

我有一个实现多个接口的类。 我想通过XML注册这些接口。 我发现的只是有关新Fluent接口的文档。 是否通过XML支持此选项? 添加此功能会涉及什么? 解决方案 [更新]这是现在可以在Windsor 2.1或更高版本中使用。请参阅语法文档,此处。 > 到目前为止,该功能尚未在XML解释器中实现。工具(显然,该技术在想要添加现有配置解析器中缺少的其他功能时也很有用)。 ..
发布时间:2020-09-29 23:43:50 其他开发

Ioc / DI-为什么我必须引用应用程序入口点中的所有层/程序集?

(与此问题相关, EF4 :启用延迟加载后,为什么必须启用代理创建?)。 我是DI的新手,所以请多多包涵。我知道容器负责实例化我所有的注册类型,但是要这样做,它需要引用我的解决方案中的所有DLL及其引用。 如果我不使用DI容器,则不必在MVC3应用程序中引用EntityFramework库,而只需引用业务层,即可引用我的DAL / Repo层。 我知道最终所有DLL都包含在bin ..

在Azure函数中使用IoC容器

我习惯于使用 TopShelf 编写Windows服务来完成所有在Windows中无法完成的工作Web请求,并逐渐转向使用Azure功能. 有了topshelf,我通常可以做到 在服务启动时扫描并注册 为每个票证/请求使用嵌套容器 如何在天蓝色函数调用中使用IOC?我应该完全使用它吗? 解决方案 在Azure Functions中,目前还没有一种以自然方式进行IOC的方 ..
发布时间:2020-09-17 05:29:34 其他开发