objectbuilder

IOC : Unity 配置和使用

Deadly 提交于 2020-12-14 11:28:52
原文出自: IOC : Unity 配置和使用 之前Terry Lee 已经介绍过Unity的简单使用了,不过那篇文章是针对旧版本的,现在的版本1.2版略有不同。 我下载了Unity并做了一个简单的测试,项目的分布是这个样子: LoggerTest.Interface.ILogger 主要是接口, 一个简单的不能再简单的方法结构: public interface ILogger { void Write(string message); } LoggerTest 是实现这个接口的project, 恩,跟Terry Lee 的例子一样,实现两个就OK了,分别是FlatFileLogger和DatabaseLogger。 namespace LoggerTest { public class FlatFileLogger : ILogger { public void Write(string message) { Console.WriteLine(String.Format("Message:{0}", message)); Console.WriteLine("Target:FlatFile"); } } public class DatabaseLogger : ILogger { public void Write(string message) { Console

ServiceLocator.Current.GetInstance causes excessive number of calls to ObjectBuilder2.PolicyList.GetNoDefault

为君一笑 提交于 2019-12-11 19:21:48
问题 In my MVC4, .NET4.5 web app using Unity IoC container, in the method IoCContainerFactory.GetControllerInstance() we use ServiceLocator.Current.GetInstance to get the controller instance: public class IoCControllerFactory : DefaultControllerFactory { protected override IController GetControllerInstance( System.Web.Routing.RequestContext requestContext, Type controllerType) { // snip other code // this is the problem line: return ServiceLocator.Current.GetInstance(controllerType) as IController