2012-07-18 3 views
2

asp.net 유니 타이드의 인터페이스 차단과 생성자 주입의 차이점은 무엇입니까? 이 같은 일부Microsoft Unity 인터페이스 차단과 생성자 주입의 차이

<register type="ICRIC2012TrialUserService" mapTo="CRIC2012TrialUserService"> 
     <lifetime type="perthread"/> 
     <interceptor type="InterfaceInterceptor"/> 
     <policyInjection/> 
</register> 

하지만 일부는

<interceptor type="InterfaceInterceptor"/> 

하지만 프로젝트 다음에이없는 유니티 내가 늙은 프로젝트 및 unity.config하고 있어요 와 이해 DI의 부족입니다 클래스 및 인터페이스는 다음과 같이 같은 방식으로 작동합니다.

private readonly IIncomingEstimateService _incomingEstimateService; 

     public ContractService(IIncomingEstimateService incomingEstimateService) 
     { 
      _incomingEstimateService = incomingEstimateService; 
     } 

답변

4

차단 및 주입은 다른 두 가지입니다.

차단은 대개 반복적 인 문제 (로깅과 같은)를 클래스에 반복해서 적용하지 않고도 클래스에 추가하는 데 사용됩니다. Unity의 인터셉터는 들어오는 메소드 호출을 수신하고 호출이 최종 대상 오브젝트에 최종적으로 도달 할 때까지 소위 인터셉터의 파이프 라인을 통해 전달하는 프록시를 생성함으로써 작동합니다.

이 두 기사에서는 Unity와의 차단 방법을 소개합니다.

Interceptors in Unity

Using Interception with Unity

생성자 주입 의존성 삽입 패턴을 구현하는 하나의 방법이다. 이것은 컴포넌트를 디커플링하도록 애플리케이션을 구조화하는 방법을 알려주는 패턴입니다.

웹에 많은 기사가 있습니다.

Inversion of Control Containers and the Dependency Injection pattern

The Dependency Injection Pattern – What is it and why do I care?

차단 및 사출

는 완전히 다른 무언가이다. 그러나 Unity와 같은 일부 Dependency Injection 컨테이너는 둘 다 수행 할 수 있습니다. 클래스에 종속성을 주입하고 컨테이너 인프라를 사용하여 해당 클래스에 대한 호출을 가로 챌 수 있습니다.

+0

감사합니다. 도움이됩니다. – Bubble

관련 문제