assemblyA의 형식을 내 콘솔에서 사용하여 AOP 스타일 로깅을 허용하도록 응용 프로그램을 구성하려고합니다. JournalInterceptor는 메서드 호출, 입력 및 어쩌면 출력 인수를 일종의 로그 파일이나 데이터 저장소에 씁니다.Windsor 및 일괄 등록 클래스를 사용하는 AOP
한 번에 한 가지 유형을 등록 할 수 있지만 한 번에 모든 유형을 등록하고 싶습니다. 일단 내가 가면 등록 된 유형에 필터링을 추가 할 수 있지만 뭔가 빠져 있습니다. 나는 Classes.FromAssemblyContaining
을 사용하려고하지만 WindsorContainer::Register
모든 단서가 호출에 대한 IRegistration
예를 얻을하는 방법을 잘 생각하고
?
// otherAssembly.cs
namespace assemblyA
{
public class Foo1 { public virtual void What(){} }
public class Foo2 { public virtual void Where(){} }
}
// program.cs
namespace console
{
using assemblyA;
public class JournalInterceptor : IInterceptor {}
public class Program
{
public static void Main()
{
var container = new Castle.Windsor.WindsorContainer()
.Register(
Component.For<JournalInterceptor>().LifeStyle.Transient,
// works but can't be the best way
Component.For<Foo1>().LifeStyle.Transient
.Interceptors<JournalInterceptor>(),
Component.For<Foo2>().LifeStyle.Transient,
.Interceptors<JournalInterceptor>(),
// how do I do it this way
Classes.FromAssemblyContaining<Foo1>()
.Pick()
.LifestyleTransient()
.Interceptors<JournalInterceptor>()
);
Foo1 foo = container.Resolve<Foo1>();
}
}
}
감사합니다. 나는 저널링을 원했던 서비스 (사용자 지정 속성을 통해)를 필터링 한 후에 작동했습니다. 내가 시간을 얻 자마자 비디오 세션을 볼거야. –