统一2拦截相当于CreateInterfaceProxyWithoutTarget的城堡动态代理

问题描述:

我想使用统一拦截的接口没有实现,使IInterceptionBehavior实际上变成实现。这与Castle Dynamic Proxy中的CreateInterfaceProxyWithoutTarget方法相同。统一2拦截相当于CreateInterfaceProxyWithoutTarget的城堡动态代理

这是可能的团结?

我觉得没什么,唯一的办法我知道拦截的接口是一个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

这是一个很长一段时间,因为这个问题被张贴,但我碰到它,而试图图出来也是一样的,好吧,好像我已经想出了一些东西。

我将它用Intercept.NewInstanceWithAdditionalInterfaces工作。 在下面我我的样品需要一个团结奋进,共创实施IUserDao非限定类的一个实例。我想要的那个Unity创建的类的实例在RetrieveSavedResultBehavior中定义。

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

您可以查看关于这个话题here