问题标签 [castle-dynamicproxy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2591 浏览

c# - 是否可以在 C# 中为静态类或静态方法生成动态代理?

我试图想出一种方法,可以通过动态代理拦截(静态或实例)方法调用。我想将它实现为 c#扩展方法,但坚持如何为静态方法生成动态代理。

一些用法:

我对任何图书馆(linfu、castle.dynamic proxy 2 等)开放。

谢谢!

0 投票
1 回答
652 浏览

c# - 我可以向 Castle Windsor 指定要在类代理中覆盖哪些虚拟方法吗?

我在一个类中有很多虚拟方法,但只有一个应该被拦截,我可以告诉 Castle Windsor 只覆盖那个方法,这样我就不必在 Intercept 方法中进行验证了吗?

编辑:

我使用 IKernelEvents.ComponentRegistered 事件来选择获取拦截器的类型。

0 投票
1 回答
904 浏览

.net - 在 Gallio / MbUnit 中运行的测试失败;无法加载 Castle DynamicProxy

我有一个 .NET 3.5 程序集,包含大约 4000 个 MbUnit 测试。我一直在使用 mbunit.cons.exe 程序运行这些程序,没有任何问题。

现在我正在尝试切换到 Gallio(生成 XML 报告时,mbunit.cons.exe 开始因“内存不足”异常而崩溃)。

在 Icarus 中运行测试时,大多数都失败了,但有以下异常:

被测程序集确实使用动态代理。动态代理程序集与被测程序集位于同一目录中。

我尝试将包含程序集的目录放在 Icarus 的“提示目录”、“应用程序基目录”和“工作目录”字段中,但这不会改变结果。

有没有人成功地同时使用了 Gallio 和 Dynamic Proxy,或者有任何关于问题可能是什么的提示?

0 投票
2 回答
4989 浏览

c# - Castle DynamicProxy:代理接口时如何代理 Equals?

我需要使用 Castle DynamicProxy 通过向 ProxyGenerator.CreateInterfaceProxyWithTarget 提供一个接口来代理接口。我还需要确保对 Equals、GetHashCode 和 ToString 的调用会命中我正在传递的具体实例上的方法,但我无法让它工作。

换句话说,我希望这个小样本打印True两次,而实际上它打印True,False

这可能与 DynamicProxy 吗?如何 ?

0 投票
2 回答
1276 浏览

events - 使用 Castle DynamicProxy 进行事件拦截

在谷歌搜索中,我似乎找不到在代理类型上拦截事件的示例,而且它似乎对我不起作用。有没有办法可以做到这一点(即在调用事件时使用 IInterceptor)?

0 投票
1 回答
507 浏览

c# - Castle 拦截器生命周期和内存泄漏

我是城堡动态代理的新手,有点好奇..

在创建我的对象的代理时,我使用字典将其属性的所有原始值保存在拦截器(类范围)上并返回新值。现在我想知道,这些数据何时会被 GC 收集?我可以控制它还是取决于拦截器的生命周期?

问候健

0 投票
1 回答
784 浏览

castle-windsor - 在城堡温莎流利中注册多个拦截器

如何使用 fluent API 注册多个拦截器?

0 投票
1 回答
372 浏览

castle-windsor - 在 Castle Dynamic Proxy 2.1 IModelInterceptorsSelector 中覆盖 GetHashCode 和 Equals

我已经读过这篇文章,以便在使用 Castle Dynamic Proxy 时使用拦截器选择器时获得缓存和推送性能,我需要覆盖 GetType()、GetHashCode() 和 Equals()

从执行的角度来看,我在哪里可以找到实施的示例或最好的实施方式?

0 投票
1 回答
244 浏览

castle-windsor - 防止方法被拦截——城堡

当我在注册组件(基于接口)时为其分配一个拦截器时,作为接口契约一部分的每个方法都会被拦截。有没有办法防止方法被拦截属性或其他东西?

谢谢

0 投票
1 回答
1086 浏览

.net-4.0 - 如何为 ChannelFactory 生成的 WCF 代理创建 DynamicProxy?

我正在使用 ChannelFactory 在运行时为 WCF 服务创建代理。我想使用 DynamicProxy Castle 项目在 WCF 代理之上创建一个动态代理,以便我可以拦截呼叫并进行模拟。

但是,当我尝试此操作时出现错误...错误消息是:

'this' 类型不能是接口本身。

我的代码是这样的(其中 T 是服务合同接口):

问题一定是ChannelFactory生成的服务代理是在运行时生成的,但是有什么办法可以解决这个问题呢?