【c# – IoC比较】教程文章相关的互联网学习教程文章

c# – 如何确定我们应该选择哪一个使用MEF与任何IoC?

在哪种情况下我们应该使用什么?在什么情况下我们会选择一起使用?解决方法:棘手的问题 – 因为这两个确实在某种程度上重叠. 我会这样说: >如果您主要关注依赖注入,以便将组件分离,请使用任何有用的IoC,例如:能够注入模拟的能力(用于测试)>使用MEF尤其是如果你更容易进行扩展,例如能够“从导出某个界面的目录加载所有程序集”,如果您需要可扩展并为第三方打开(如Visual Studio:提供公共API,以便其他人可以为您的应用程序编写扩展...

c# – 传递IOC容器的替代方法【代码】

我有以下几个依赖的基类:public abstract class ViewModel {private readonly ILoggingService loggingService;public ViewModel(ILoggingService loggingService,...){this.loggingService = loggingService;...} }在我的派生类中,我不想重复此基类构造函数中的所有参数,所以我这样做:public abstract class ViewModel {private readonly IUnityContainer container;private ILoggingService loggingService;...public ViewMode...

c# – 使用Nsubstitute注册或配置IOC容器【代码】

我有一个自定义IOC容器,它接受Interface和Concrete类型作为注册参数.在我的项目中,我已经注册了下面代码中提到的配置.你能帮助我一个人如何使用NSubstitute注册单元测试项目吗? IOC -Conatincer.csRegister<Intf, Impl>();应用程序 – Configuration.csRegister<ICustomer,Customer>();单元测试应用程序 – CustomerTest.csRegister<ICustomer,StubCustomer>(); -I want something like this var substitute = Substitute.For<I...

c# – 具有静态和动态依赖关系的IoC【代码】

我正试图在我的应用程序中实现IoC.我有这个型号:interface IService; interface IComponent;class Service : IServiceService()class Component : IComponentComponent(IService service, object runtimeValue) { }在我的应用程序的某些时候,我需要一个IComponent.我的应用程序使用IoC容器(Unity).我可以使用容器注册Service,但我不能对其依赖runtimeValue的Component b / c执行相同的操作.根据this我必须使用工厂并注入,无论我需...

c# – IoC:如何动态创建对象【代码】

我有一个问题需要了解如何在需要动态创建对象的场景中使用IoC.让我们假设我有这个类:abstract class Field {public Field( ICommandStack commandStack ) {} }abstract class Entity {public readonly Collection<Field> Fields { get; } }class EntityA {public EntityA( ICommandStack commandStack ) {Fields.Add( new StringField( commandStack ) );} }class EntitiyB {public EntityB( ICommandStack commandStack ) {Field...

c# – IoC和.NET框架

我想知道在处理.NET时IoC模式的最佳实践是什么 例如,我应该通过IoC容器还是使用简单的新关键字创建SqlConnection / OracleConnection或任何其他提供程序? 将我的类与具体的提供者类型分开是否有任何价值(包括我只想使用一种类型的提供者)?解决方法:如果您使用IDbConnection和所有其他类而不是具体类,它可能对单元测试有价值. 除了IOC和类似的东西之外,我实际上已经多次使用DbFactoryProvider(some more info)来创建我的Connectio...

c# – MvvmLight SimpleIoc和多个具体实现【代码】

使用SimpleIoc我想注册IProvider的多个实现,如:SimpleIoc.Default.Register<IProvider, Provider1>(); SimpleIoc.Default.Register<IProvider, Provider2>();所以我可以这样做:var providers = SimpleIoc.GetAllInstances<IProvider>();有没有办法做这样的事情?如果我按原样尝试它,那么已经有一个为IProvider注册的类.解决方法:您可以通过实现基类并使用键控注册来实现:public interface IProvider { } public abstract class ...

c# – 用于属性注入的DryIOC容器配置【代码】

我已经搜索了一个简单的例子来说明如何配置DryIoc容器以简单地将依赖关系注入属性,就像它注入构造函数args一样. 鉴于以下工作示例…… 集装箱登记:public static void Register(HttpConfiguration config){var c = new Container().WithWebApi(config);c.Register<IWidgetService, WidgetService>(Reuse.Singleton);c.Register<IWidgetRepository, WidgetRepository>(Reuse.Singleton);}小部件服务:public class WidgetService :...

c# – 使用TinyIoC构造函数注入【代码】

我刚从Ninject更改为TinyIoC以进行依赖注入,而我在构造函数注入方面遇到了麻烦. 我已设法将其简化为此代码段:public interface IBar { } public class Foo {public Foo(IBar bar) { } }public class Bar : IBar {public Bar(string value) { } }class Program {static void Main(string[] args){var container = TinyIoCContainer.Current;string value = "test";container.Register<IBar, Bar>().UsingConstructor(() => new Bar...

c# – 使用IoC容器预期应用程序可扩展性

我知道有一个类似的问题Here但我认为我的更多了. 我最近一直致力于一个已经投入生产大约一年的应用程序,没有任何问题,也没有真正的扩展计划.该应用程序具有很少的依赖性并使用DI但没有容器. 现在我将应用程序扩展到公司指令的更广泛范围,这促使我实现了IoC容器的使用.这里的问题是向我以前认为不需要的代码添加容器的开销. 我向前迈进的具体问题是: >当规划和编码可能不会扩展太多的较小应用程序时,我是否应该实现容器以预期这些场...

C#高性能Socket服务器IOCP实现【代码】

引言 我一直在探寻一个高性能的Socket客户端代码。以前,我使用Socket类写了一些基于传统异步编程模型的代码(BeginSend、BeginReceive,等等)也看过很多博客的知识,在linux中有poll和epoll来实现,在windows下面 微软MSDN中也提供了SocketAsyncEventArgs这个类来实现IOCP 地址:https://msdn.microsoft.com/zh-cn/library/system.net.sockets.socketasynceventargs.aspx 如果有想学习c++的程序员,可来我们的C/C++学习扣qun:589...

c# – IoC比较

在开发ASP.NET Web应用程序项目时要考虑哪个IoC以及不同IoC有哪些优势? > ObjectBuilder>团结> Spring.NET解决方法:它不在您的列表中,但请考虑查看Castle Windsor 支持工厂的设施数量,以便工厂产品注入工厂本身或注入代理或创建具有依赖关系的主机的Wcf工具. 有一个很好的流畅的接口,用于连接单个项目,但最好是使用约定自动连线,这样你就不必列出每个组件. 其他一些不错的功能: >自新版本以来需要一个dll.>支持通过SubDependancy...

c# – IoC Unity和Simple Injector之间的注册差异【代码】

我有一个项目使用Unity完美运行.我尝试切换到使用Simple Injector,现在没有任何更改保存在我的数据库中.我认为这与注册组件的生命周期有关.这是Unity容器注册:private IUnityContainer GetUnityContainer() {IUnityContainer container = new UnityContainer().RegisterType<IDatabaseFactory, DatabaseFactory>(new HttpContextLifetimeManager<IDatabaseFactory>()).RegisterType<IUnitOfWork, UnitOfWork>(new HttpContextLife...

c# – 使用IoC动态选择接口实现【代码】

我有一种情况,在运行时确定接口的实现.例如,我检查一个字符串,然后确定要使用哪个子类,没有IoC,它看起来如下所示:if (fruitStr == "Apple") {new AppleImpl().SomeMethod(); } else {new BananaImpl().SomeMethod(); }据IFruit称,AppleImpl和BananaImpl这两个类都是同一个界面的实现. 如何使用IoC / Dependency Injection来完成,特别是在Castle Windsor?解决方法:这是关于依赖注入的最常见问题,并在StackOverflow上反复询问. 简而...

c# – FreshMvvm中的控制反转(IOC)【代码】

关于国际奥委会,我在下面阅读了以下定义&注册界面,我真的无法搞清楚We don’t need to include our own IOC container, FreshMvvm comes with aIOC container built-in. It’s using TinyIOC underneath, but withdifferent naming to avoid conflicts.与FreshIOC的接口注册,如果你看到这个代码,在启动应用程序时实现这个实现public App() { InitializeComponent(); //Interface rgistration with FreshIOC FreshIOC.Containe...