统一2拦截相当于CreateInterfaceProxyWithoutTarget的城堡动态代理
问题描述:
我想使用统一拦截的接口没有实现,使IInterceptionBehavior实际上变成实现。这与Castle Dynamic Proxy中的CreateInterfaceProxyWithoutTarget方法相同。统一2拦截相当于CreateInterfaceProxyWithoutTarget的城堡动态代理
这是可能的团结?
答
我觉得没什么,唯一的办法我知道拦截的接口是一个InterfaceInterceptor
but it requires a base class to be registered in the container:
Container.RegisterType<IRepository, BaseRepository>(
"repo1",
new Interceptor(new InterfaceInterceptor()),
new InterceptionBehavior(new RepoLoggingBehavior())
);
答
这是一个很长一段时间,因为这个问题被张贴,但我碰到它,而试图图出来也是一样的,好吧,好像我已经想出了一些东西。
我将它用Intercept.NewInstanceWithAdditionalInterfaces工作。 在下面我我的样品需要一个团结奋进,共创实施IUserDao非限定类的一个实例。我想要的那个Unity创建的类的实例在RetrieveSavedResultBehavior中定义。
IUserDao userDao = (IUserDao)(Intercept.NewInstanceWithAdditionalInterfaces<Object>(
new VirtualMethodInterceptor(),
new List<IInterceptionBehavior>(){new RetrieveSavedResultBehavior()},
new List<Type>() { typeof(IUserDao) }
));
您可以查看关于这个话题here
这太糟糕了我的职务。谢谢。 – 2011-03-31 12:22:22