问题标签 [realproxy]
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.
c# - 通过 RealProxy 引用参数
我需要通过 RealProxy 调用带有 ref-arguments 的方法。我已将问题隔离到以下代码:
该程序应生成“Hello World!” 输出,但不知何故,对 ref 参数的修改在代理中丢失了。我该怎么做才能让它工作?
.net - 当我只知道透明代理时如何获取 RealProxy
我有一个透明代理,例如由 WCF 生成的一个:
如何从透明代理中获取 RealProxy?
vb.net - 如何通过 RealProxy 透明代理返回一个对象作为返回值?
我正在开发一个系统,我计划在其中使用 RealProxy 对象来启用对一组对象的拦截方法调用,处理调用,然后返回适当的结果。
这仅适用于字符串或整数等简单返回类型,但我似乎无法从 RealProxy.Invoke 方法返回对象。
一切正常。我没有收到任何错误,但返回的值始终是 NOTHING,而不是对象。
我已经完成了我能做的最小的示例代码,并将其包含在下面。
本质上,只需调用 RPtest 并单步执行。该代码创建了一个简单的对象 RPTestA,其中包含一个字符串字段和一个对象值字段然后检索字符串 Dim x = c.Name 工作正常,然后尝试检索该对象
总是什么都不返回。
但是,在 FieldGetter 例程中,此代码:
似乎工作得很好,将 ReturnMessage 的 ReturnValue 字段设置为由上面的 Activator.CreateInstance(t) 调用创建的对象。
我怀疑这是某种序列化的事情,但我不知所措。
您应该能够立即运行此代码,但只需将其粘贴到新的 VB.net 项目中即可。
c# - C# RealProxy:泛型方法?
我正在尝试通过 a 处理泛型方法的调用RealProxy
,但我似乎无法找到有关在截获的方法调用中使用的泛型参数的实际类型的信息。代码摘录:
假设我正在代理一个接口,例如
当我打电话给代理
我希望能够找出泛型参数的类型MyClass
。这可以通过RealProxy
吗?
c# - `RealProxy.GetTransparentProxy()` 在什么情况下会返回 `null`?
http://msdn.microsoft.com/en-us/library/system.runtime.remoting.proxies.realproxy.gettransparentproxy%28v=VS.100%29.aspx上的文档并未指出GetTransparentProxy
将返回的场景null
,但是null
当我打电话给我时,我得到了回报。
什么情况下会导致这种行为?
c# - Autofac 和跨 AppDomain 代理
我正在尝试使用 Autofac 注册跨 AppDomain 代理。
代理所代表的具体类型实现了接口IServiceHost。因此,代理也应该允许使用该接口调用代理。
我尝试通过执行以下操作向 Autofac 注册代理:
但是,在builder.Build()
通话中,我得到:
参数异常
类型“System.MarshalByRefObject”不可分配给服务“Treadmarks.Core.ServiceBase.IServiceHost”。
但是,host
绝对是一个,IServiceHost
因为它不是 null 并且它来自一个强类型的方法参数。
谁能解释我如何正确注册代理?
wcf - 使用 RealProxy 包装多个 WCF 连接
我正在开发一个项目,我们的服务器与多个暴露相同接口的服务器进行通信(如集群)。我们使用循环来选择将请求发送到哪个服务器。到目前为止,我们一直在使用 Expression 来调用我们的 ClusterManager,但这会导致一些丑陋的代码。它还使单元测试变得混乱,并且有点难以验证方法参数。它似乎也导致 Moq 出现一些随机异常问题(不是本文的主题)。
我目前调用服务器和单元测试,如Moq Setup 后所述,用于带有操作或函数参数的接口
言归正传:
我目前有以下方法:
我想将其更改为以下内容:
ServerProxy 是一个 RealProxy,我需要将此调用转换为 ClusterManager 以执行对服务器的实际调用。目前,ClusterManager 与 CallServer 具有相同的签名,这对于现有实现来说有点多余。对于Invoke(IMessage)中调用的翻译,我有两个想法。
想法1 将IMethodCallMessage 翻译成lamda 表达式(我还没弄明白怎么做)并将其传递给ClusterManager。除了我不知道如何创建表达式,然后再次处理返回值的问题。一些方法返回一个值,而另一些则没有,因此这涉及到保持 ClusterManager.CallServer 的多个重载。我还需要创建 IMessage 以从 Invoke 返回。
思路2 获取我目前用来调用服务器的WCF连接的TransparentProxy的RealProxy,直接用我有的消息调用Invoke。在我的试用中(使用集成测试),我似乎能够成功调用服务器,但是通过ReturnMessage查看,没有返回值,并且ServiceChannelProxy尝试获取消息数据时将Exception属性设置为ArithmetricException。这可能是因为我在测试中做错了什么,或者我不能在两个单独的代理上使用相同的 LogicalCallContext(或其他东西)。
有关如何处理此问题的任何指示?我更喜欢Idea 2,因为它看起来最简单,并且希望代码量最少。在一个类中实现IServerExposingToClient中的所有方法以调用正确的服务器并不是我想做的事情。
有关如何处理此问题的任何指示?
c# - 实例化代理类 (RealProxy)
我正在尝试使用 RealProxy 扩展创建代理。我在转接电话和拦截电话方面没有问题。但是,我还想拦截被代理类的实例化,因此我尝试在 ProxyAttribute 派生类中覆盖实例创建。
这是代码:
我从这里获取信息:http: //msdn.microsoft.com/en-us/library/vstudio/scx1w94y (v=vs.100).aspx
当我实例化 Proxiable 类时,这段代码应该可以工作:
new Proxiable() -或- Activator.CreateInstance(typeof(Proxiable))
当我实例化该类时,代码确实会执行-ProxiableProxyAttribute 中的 CreateInstance 和 MyProxy-中的 Invoke 方法。但是在 MyProxy 的 Invoke 方法中,我还必须模拟构造函数,并且它必须返回一个 ObjRef 对象。我一直在尝试返回此引用,但我收到一个异常“提供给 'Unmarshal' 的无效 ObjRef”。
我现在真的没有头绪,这个异常非常抽象,互联网上几乎没有关于这个的信息。如果有人知道编组器期望什么样的 ObjRef 实例,那真的会对我有所帮助。
c# - RealProxy 挂钩事件
我正在尝试挂钩事件(在这种情况下为操作),但无法无一例外地从代理返回。想法是这样的:我有事件接口,它们没有在客户端订阅。因此,当我尝试在客户端引发事件时,我在代理中捕获此事件并将此事件的名称及其参数发送到我的远程服务器,我只想从代理返回。这是我的样本
c# - 如何动态组合两个接口传递给RealProxy
在调用 RealProxy 基本构造函数时,您传递要代理的目标对象的类型。我想做的是动态地将接口添加到代理类型,以便可以将生成的代理类型强制转换为其他接口。
例如:
因此,为了能够将代理类型转换为,除了基本构造函数调用之外IDisposable
,我还需要能够发送。IDisposable
IFoo
RealProxy
本质上,我如何实现这个方法来动态添加IDisposable
到IFoo
被代理。