是否可以在真实的代理类中定义透明代理的自定义转换行为?
示例:
public class TestProxy : RealProxy
{
public TestProxy() : base(typeof(MarshalByRefObject))
{
}
public override IMessage Invoke(IMessage msg)
{
throw new NotImplementedException();
}
}object proxy = new TestProxy().GetTransparentProxy();
Console.WriteLine((string)proxy);此代码引发System.InvalidCastException:无法将透明代理转换为System.String类型。是否可以在TestProxy类中检测强制转换并处理它?
编辑:转换成COM接口的代码就足够了。
发布于 2015-02-27 16:37:55
我唯一能够做到这一点的方法是,除了使用普通的.NET代码之外,还可以使用城堡。我从未发现.NET对象本身的公共方法和属性足够健壮,足以满足我的需求。
我通常通过使用Castle设施来处理这个问题,这意味着您必须在DI中使用Castle (或者有两个容器)。
您也可以单独使用Castle.DynamicProxy,详见此处:https://msdn.microsoft.com/en-us/magazine/dn574804.aspx
https://stackoverflow.com/questions/28768542
复制相似问题