2011-02-02 92 views

回答

3

我覺得沒什麼,唯一的辦法我知道攔截的接口是一個InterfaceInterceptorbut it requires a base class to be registered in the container

Container.RegisterType<IRepository, BaseRepository>(
    "repo1", 
    new Interceptor(new InterfaceInterceptor()), 
    new InterceptionBehavior(new RepoLoggingBehavior()) 
    ); 
+0

這太糟糕了我的職務。謝謝。 – 2011-03-31 12:22:22

0

這是一個很長一段時間,因爲這個問題被張貼,但我碰到它,而試圖圖出來也是一樣的,好吧,好像我已經想出了一些東西。

我將它用Intercept.NewInstanceWithAdditionalInterfaces工作。 在下面我我的樣品需要一個團結奮進,共創實施IUserDao非限定類的一個實例。我想要的那個Unity創建的類的實例在RetrieveSavedResultBehavior中定義。

IUserDao userDao = (IUserDao)(Intercept.NewInstanceWithAdditionalInterfaces<Object>(
      new VirtualMethodInterceptor(), 
      new List<IInterceptionBehavior>(){new RetrieveSavedResultBehavior()}, 
      new List<Type>() { typeof(IUserDao) } 
      )); 

您可以查看關於這個話題here