1

いくつかのタイプを1つずつ登録しています:

container.Register(
     Component.For<IService1>().ImplementedBy<ServiceImpl1>(),
     Component.For<IService2>().ImplementedBy<ServiceImpl2>(),
     Component.For<IService3>().ImplementedBy<ServiceImpl3>(),
     Component.For<IService4>().ImplementedBy<ServiceImpl4>()
     );

登録されているこのアセンブリのすべてのタイプのインターセプターを登録する方法はありますか? 私は慣習によってすべてのタイプを登録したくありませんAllTypes。書かずにインターセプターを追加したいだけです

.Interceptors(InterceptorReference.ForType<DummyInterceptor>())
            .SelectedWith(new FooInterceptorSelector()).Anywhere

何億回も。

ありがとう!

4

2 に答える 2

0

ComponentModelコントリビューターを使用する場合、.SelectedWithをどのように指定しますか?これを行うことで、すべてのメソッドにインターセプターを追加できます。

public class MyContributor : IContributeComponentModelConstruction 
{
    public void ProcessModel(IKernel kernel, ComponentModel model)
    {
        model.Dependencies.Add(new DependencyModel(DependencyType.Service, null, typeof(MyInterceptor), false));
        model.Interceptors.AddFirst(InterceptorReference.ForType<MyInterceptor>());
    }
}
于 2011-10-28T14:53:49.143 に答える