有人可以帮助我理解Unity是什么以及它如何简化下面的示例编码:
普通代码
FileLogger myLogger = new FileLogger();
FileLogger myLogger = new FastLogger();
Unity容器代码
// Create container and register types
IUnityContainer myContainer = new UnityContainer();
myContainer.RegisterType<ILogger, FileLogger>(); // default instance
myContainer.RegisterType<ILogger, FastFileLogger>("FastLogger");
ILogger myLogger = myContainer.Resolve<ILogger>();
此外:
如果两个类实现相同的接口,我们在Unity上执行类似下面的操作会发生什么:
container.RegisterType<IInvoicingService, InvoicingService>()
.RegisterType<IInvoicingService, ManagerService>();
IInvoicingService service = container.Resolve<IInvoicingService>();
service.GetCount();
看起来它会调用getCount
上的ManagerService
方法。如何在GetCount
和InvoicingService
上调用ManagerService
?
是的我已经阅读了有关CodePlex的文档,它让我很困惑!
答案 0 :(得分:4)
对于IOC和/或依赖注入,我可以推荐这个:
http://martinfowler.com/articles/injection.html
这可以帮助您更好地理解使用此模式可以实现的目标。 Unity可以帮助您在.NET中实现这种模式。
我将尽我所知来回答您的项目符号问题:
答案 1 :(得分:0)
这是一个描述统一性的博客条目的链接,以及如何在面向方面编程(AOP)和策略注入方面使用它的示例。该博客还包括3个来自Dino Espisito的MSDN艺术链接。
http://bardevblog.wordpress.com/2011/03/21/aop-policy-injection-with-unity/
希望这个