我有一个实现两个接口的类,我想對类的方法应用拦截.
我正在遵循的建议,但我对结果感到惊讶.简而言之,似乎我的CallHandler被调用了两次.我有一个最简单的例子是:
我原本希望只调用┅次Log.我可以通过让LogCallHandler检测它是否从另一个LogCallHandler调用来实现这一点,但这看起来不太优雅.
最初我想将拦截行为应用于C而不是分别应用于I1和I2,但这需要C继承MarshalByRefObject,这是我不愿意强加的约束.
问题是您正在将透明代理应用于每个接口.相反,如果将它应用于具体类,则只能获得一个代理.此外,除非您希望共享實例,否则不需要将其设为单例.
我在测试控制台项目中运行了此配置并获得了所需的结果.感谢您提供隔离问题的工作代码段!
继承自Mono的单例写法:
托管被视为對对象或者方法的一个引用
定义一个托管,以及被触发时的响应