Ninject を使用して、型に対してインターセプトを選択的に使用しようとしています。実装が特定のインターフェイスを実装している場合、それをインターセプトしたいと考えています。Ninject Activation Context をチェックして、そのターゲットがインターフェースを実装しているかどうかを確認するにはどうすればよいですか?
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
var kernal = new StandardKernel();
kernal.Bind<IFoo>().To<Foo>();
kernal.Intercept(x =>
{
if (x is an IGetIntercepted)
{
return true;
}
return false;
});
}
public interface IGetIntercepted
{ }
public interface IFoo
{ }
public class Foo : IFoo, IGetIntercepted
{ }
}
- この例では、IFoo ではなく Foo をチェックしたいことに注意してください。(IFoo は Ninject.Activation.Binding.Service プロパティで簡単に見つかります)