首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >定义RealProxy的自定义铸造

定义RealProxy的自定义铸造
EN

Stack Overflow用户
提问于 2015-02-27 15:26:00
回答 1查看 520关注 0票数 0

是否可以在真实的代理类中定义透明代理的自定义转换行为?

示例:

代码语言:javascript
复制
public class TestProxy : RealProxy
{
    public TestProxy() : base(typeof(MarshalByRefObject))
    {

    }

    public override IMessage Invoke(IMessage msg)
    {
        throw new NotImplementedException();
    }
}
代码语言:javascript
复制
object proxy = new TestProxy().GetTransparentProxy();
Console.WriteLine((string)proxy);

此代码引发System.InvalidCastException:无法将透明代理转换为System.String类型。是否可以在TestProxy类中检测强制转换并处理它?

编辑:转换成COM接口的代码就足够了。

EN

回答 1

Stack Overflow用户

发布于 2015-02-27 16:37:55

我唯一能够做到这一点的方法是,除了使用普通的.NET代码之外,还可以使用城堡。我从未发现.NET对象本身的公共方法和属性足够健壮,足以满足我的需求。

我通常通过使用Castle设施来处理这个问题,这意味着您必须在DI中使用Castle (或者有两个容器)。

您也可以单独使用Castle.DynamicProxy,详见此处:https://msdn.microsoft.com/en-us/magazine/dn574804.aspx

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28768542

复制
相关文章

相似问题

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