首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在没有MarshalByRefObject的情况下,是否可以使用RealProxy通过远程处理公开类接口?

在没有MarshalByRefObject的情况下,是否可以使用RealProxy通过远程处理公开类接口?
EN

Stack Overflow用户
提问于 2011-12-08 12:26:21
回答 1查看 1.1K关注 0票数 0

有没有可能让RealProxy看起来像这样:

代码语言:javascript
复制
public InterfaceProxy(object instance, params Type[] interfaces)

并可以通过远程处理公开所有这些interfaces,将调用委托给instance,即使实例不是MarshalByRefObject也是如此

目前我遇到了一个问题,proxy接收到对InitializeLifetimeService的调用,无论我从它返回什么(包括null),我总是得到以下异常:

代码语言:javascript
复制
System.InvalidCastException:Return argument has an invalid type
at System.Runtime.Remoting.Proxies.RealProxy.ValidateReturnArg(Object arg, Type paramType)
at System.Runtime.Remoting.Proxies.RealProxy.PropagateOutParameters(IMessage msg, Object[] outArgs, Object returnValue)
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnmessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
EN

回答 1

Stack Overflow用户

发布于 2012-10-11 20:51:52

只要让你的类实现IRemotingTypeInfo即可。

伪代码看起来像这样:

代码语言:javascript
复制
class InterfaceProxy : RealProxy, IRemotingTypeInfo
{
    // snip all the basics

    bool IRemotingTypeInfo.CanCastTo(Type fromType, Object o)
    {
        return interfaces.Contains(fromType);
    }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8426150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档