내 asp.net-mvc 응용 프로그램 정적 CreateContainer() 메서드를 호출하는 정적 MvcApplication 있습니다. 내가 아니라 내 소스를 이해하면이 인스턴스가 Unity에 의해 시작된 이유는 무엇입니까?
private static IUnityContainer CreateContainer()
{
var container = new UnityContainer();
container.RegisterType<IConfigurationService, ConfigFile>();
container.RegisterType<ILoggerService, NlogLoggerService>();
container.RegisterInstance<ISearchService>(
new LuceneSearchService(
container.Resolve<IConfigurationService>(),
container.Resolve<ILoggerService>()),
new ContainerControlledLifetimeManager());
}
, 이것은 나에게 싱글 LuceneSearchService 인스턴스를 제공해야합니다 :이 방법에서는
나는 나의 단결 IOC 컨테이너를 만듭니다. 그러나 내 로깅에서는이 인스턴스가 요청 될 때마다 내 생성자가 히트가되는 것을 볼 수 있습니다.내가 뭘 잘못하고 있니?
P. 나만인가, 아니면 'var'가 C#에서 가장 과용되고 오용되고 오해 된 키워드입니까? – TJMonk15
+1. 그것은 "Singleton"이 아니라 "ContainerControlledLifetimeManager"입니다. OP가 매번 새로운 컨테이너를 생성하기 때문에 수명이 매우 짧습니다. UnityContainer는 IDisposable입니다. – TrueWill
ASP.Net MVC 또는 Unity (MVC와 다른 점이라면?)를 사용하지 않습니다. 난 그저 싱글 톤을하는 법을 알고있다 .- P – TJMonk15