2012-11-14 3 views
1

문제 호출되고 :MVC 컨트롤러 이니셜 여러 번

내 응용 프로그램이 메인 컨트롤러 여러 번 초기화하려고 내가 ... 그 날 미치게 만들고있다 이유를 알고 싶습니다로드 해요 , 만일 우리 중의 1 명이 유사한 과오를 가지고 있었고, 내가 무엇을 점검해야하는지에 관해 나에게 여행을주고 싶으면, 나는 동의하게 될 것이다!! IOC의

으로 유니티를 사용

MVC3의 C#을

컨트롤러 :

public ValorationController(IServiceProxy serviceProxy, 
           IHvmService hvmService, 
           IFamilyGroupService familyGroupService, 
           IClientService clientService, 
           IUserService userService, 
           IOfficeService delegationService, 
           ISocietyService societyService, 
           IFamilyService familyService, 
           IArticleService articleService, 
           IArticleFinishedService articleFinishedService, 
           IOrderService orderService) 
     : base(serviceProxy) 
    { 
     FamilyService = familyService; 
     ArticleService = articleService; 
     HvmService = hvmService; 
     FamilyGroupService = familyGroupService; 
     ClientService = clientService; 
     UserService = userService; 
     DelegationService = delegationService; 
     SocietyService = societyService; 
     ArticleFinishedService = articleFinishedService; 
     OrderService = orderService; 
    } 
+3

자세한 내용을 제공하십시오 :

은 아마 당신은 같은 것을 사용하고 싶습니다. – SLaks

+0

코드를 보내 주셔서 감사합니다. 그러나 문제가있는 것 같지 않습니다. 주 컨트롤러는 언제 초기화됩니까? 왜 그것이 여러 번 초기화되었다고 생각합니까? 왜 그것이 틀렸다고 생각하니? – Oded

+0

보다 자세한 내용을 포함해야합니다. – P6345uk

답변

2

귀하의 컨트롤러를 포함 모든 요청에 초기화됩니다.

이것은 정상적인 작동 방식입니다.

+1

안녕하세요 Oded, 귀하의 빠른 응답을 위해 나는 하나의 작업 (한 요청) RegisterRoutes에 대한 기본값을 실행 해요. 컨트롤러를 실행하고있는 모든 요청을 어떻게 확인할 수 있습니까? 그 오류를 확인하기 위해 나는 바이올린을보고 있었지만 찾을 수는 없었다. – user1520494

+0

@ user1520494 - 그런데 컨트롤러가 여러 번 초기화되었다는 것을 어떻게 결정 했습니까? 어떻게 알았어? – Oded

+0

컨트롤러에 breakPoint를 고정시키고 쇼 14 회 전에 중지 메인보기 – user1520494

0

UnityResolve은 모두 기본값으로 새 instance을 생성합니다. 원하지 않으실 경우 LifeTimeManager

Understanding Lifetime ManagersUsing Lifetime Managers에 대한 Microsoft의 도움말을 읽어 보시기 바랍니다.

// Register a default (un-named) type mapping with a singleton lifetime 
myContainer.RegisterType<IMyObject, MySingletonObject>(new ContainerControlledLifetimeManager()); 
// Following code will return a singleton instance of MySingletonObject// Container will take over lifetime management of the object 
myContainer.Resolve<IMyObject>();