2016-07-03 7 views
0

등록 논리의 끝에 유형 발견을 통해 특정 속성으로 표시된 클래스에 차단 논리를 추가하고 싶습니다.이미 등록 된 구성 요소에 가로 채기를 추가하는 방법은 무엇입니까?

내 문제는 표시된 유형이 이미 등록되어있을 수 있습니다 (예 : webapi 컨트롤러). 먼저 유형이 이미 등록되어 있는지 확인한 다음 해당 유형을 "수정"하십시오. 어떤 방법으로. 불행히도 EnableClassInterceptors 확장 메서드를 호출하여 내 인터셉터를 등록하는 것이 쉬운 일이 아닌 IRegistrationBuilder에 액세스 할 수있는 방법을 찾지 못했습니다.

예를 들어 Activating 이벤트 또는 IRegistrationSource 인터페이스와 같이 수행 할 수있는 몇 가지 사항이 있지만 가능한 한 피하기 위해 많은 책임을 맡아야했습니다.

누구나 사소한 것이 있는지 또는 어떤 식 으로든 강력한 방법으로이를 수행하는지 알 수 있습니까?

답변

0

내가 알고있는 한, 에 일단 접속하면 IRegistrationBuilder에 액세스 할 수있는 방법이 없습니다. 나는 Autofac의 소스 코드를 보았고 내가 볼 수있는 유일한 옵션에 대한 성 통합은 등록 자체와 함께 작업하는 것입니다.

Autofac 모듈을 사용하는 것입니다 수행하는 쉬운 방법 :

public class XModule : Module 
{ 
    protected override void AttachToComponentRegistration(
     IComponentRegistry componentRegistry, 
     IComponentRegistration registration) 
    { 
     // code inspired from RegistrationExtensions 
     registration.Preparing += (sender, e) => { /* ... */ }; 
    } 
} 

당신은 여기 autofac 동적 프록시 통합의 소스 코드를 찾을 수 있습니다 RegistrationExtensions.cs (github)

또 다른 옵션을 것이다 보다 고전적인 등록을 허용하기 위해 유형을 등록하는 방식을 리팩터링하는 것입니다.

관련 문제