3
我想配置一個應用程序,使得來自assemblyA的類型可以被我的控制檯使用,以允許以AOP樣式進行日誌記錄。 JournalInterceptor將只寫出方法調用,輸入和輸出參數給某種日誌文件或數據存儲。使用Windsor和批量註冊類的AOP
我可以一次註冊一種類型,但我想一次註冊所有類型。一旦我開始,我可能會添加一些過濾到註冊類型,但我錯過了一些東西。
我試圖用Classes.FromAssemblyContaining
,但我不知道如何在IRegistration
實例得到調用WindsorContainer::Register
任何線索?
// 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>();
}
}
}
謝謝,這工作後,我篩選出我想要的日記爲哪些服務(通過自定義屬性)。我會盡快觀看視頻會議。 – 2012-01-04 10:05:07