1
관련 컴포넌트에 대한 인스턴스가 해결되자 마자 바로 IInterceptor에서 메소드를 가져 오는 방법이 있습니까? IOnBehalfAware와 비슷하지만 ComponentModel이 아닌 실제 컴포넌트 인스턴스로 호출되도록합니다.컴포넌트 인스턴스에서 Castle Interceptor 호출하기
관련 컴포넌트에 대한 인스턴스가 해결되자 마자 바로 IInterceptor에서 메소드를 가져 오는 방법이 있습니까? IOnBehalfAware와 비슷하지만 ComponentModel이 아닌 실제 컴포넌트 인스턴스로 호출되도록합니다.컴포넌트 인스턴스에서 Castle Interceptor 호출하기
... 인터페이스를 정의 같은 일을 최대 종단 나의 IInterceptor
(들)을 구현 : 구성 요소를 등록 할 때, 그리고
public interface IInstanceAware
{
void Execute(object instance);
}
을 정확히 할 것을
registration.OnCreate((kernel, instance) =>
{
var accessor = instance as IProxyTargetAccessor;
foreach(var instanceAware in accessor.GetInterceptors().OfType<IInstanceAware>())
{
accessor.Execute(instance);
}
};
을 왜하고 싶어? –
인터셉트 된 구성 요소의 멤버 (속성)에 대한 특성이 있습니다. 인터셉터가 내 구성 요소를 반영하고 해결되는 즉시 일부 논리를 적용한 다음 결과를 저장합니다. 같은 IInterceptor 인스턴스가 나중에 메서드 호출을 가로 채기 때문에 해당 데이터가 필요하기 때문에 일반 OnCreate 대리자를 사용할 수 없습니다. – Jeff