[Castle.DynamicProxy]创建的代理对象没有正确设置原始对象的属性
[Castle.DynamicProxy]The created proxy object does not have properties of original object set correctly
我是新来的,希望我的第一个问题不会让任何人感到困惑。
我正在同时使用 Castle Windsor 和 Castle DynamicProxy,以便将 AOP 与 IOC 集成,这样我就可以实现一个日志服务(和审计等),它将拦截我项目中的所有服务。
我正在尝试代理已解析的实例来完成此操作,但没有成功。因为返回的代理会将已解析实例的属性设置为 null。以下是供参考的调试信息(有问题的 属性 是 TimeService)。
the resolved instance before proxied
代理前解析的实例。
the proxied object
代理对象
我是不是漏掉了什么,或者我对 Castle DynamicProxy 的理解有误?我确实搜索了任何解决方案,但没有成功。
非常感谢任何答案。提前致谢。
您应该在注册期间使用 Windsor 对 AOP 的内置支持,而不是覆盖 WindsorContainer.Resolve
否则您还会 运行 陷入有关发布组件和容器生命周期的其他问题:
container.Register(
Component.For<ICalcService>()
.Interceptors(InterceptorReference.ForType<ReturnDefaultInterceptor>()).Last,
Component.For<ReturnDefaultInterceptor>()
);
有关详细信息,请参阅文档:https://github.com/castleproject/Windsor/blob/master/docs/registering-interceptors-and-proxyoptions.md
我是新来的,希望我的第一个问题不会让任何人感到困惑。
我正在同时使用 Castle Windsor 和 Castle DynamicProxy,以便将 AOP 与 IOC 集成,这样我就可以实现一个日志服务(和审计等),它将拦截我项目中的所有服务。
我正在尝试代理已解析的实例来完成此操作,但没有成功。因为返回的代理会将已解析实例的属性设置为 null。以下是供参考的调试信息(有问题的 属性 是 TimeService)。
the resolved instance before proxied
代理前解析的实例。
the proxied object
代理对象
我是不是漏掉了什么,或者我对 Castle DynamicProxy 的理解有误?我确实搜索了任何解决方案,但没有成功。
非常感谢任何答案。提前致谢。
您应该在注册期间使用 Windsor 对 AOP 的内置支持,而不是覆盖 WindsorContainer.Resolve
否则您还会 运行 陷入有关发布组件和容器生命周期的其他问题:
container.Register(
Component.For<ICalcService>()
.Interceptors(InterceptorReference.ForType<ReturnDefaultInterceptor>()).Last,
Component.For<ReturnDefaultInterceptor>()
);
有关详细信息,请参阅文档:https://github.com/castleproject/Windsor/blob/master/docs/registering-interceptors-and-proxyoptions.md