是否可以强制 Castle DynamicProxy 生成的代理将成员实现为显式接口实现?
Can a Castle DynamicProxy-generated proxy be forced to implement members as explicit interface implementations?
例如,假设我定义了一个接口如下:
public interface IWhatever
{
string Text { get; set; }
}
然后我在 mixin 中实现它:
public class WhateverMixin : IWhatever
{
string IWhatever.Text { get; set; }
}
当我构建一些给定 class 的代理时,整个显式实现的接口成员显示为隐式实现,因此它得到 published.
你知道我是否可以为 Castle DynamicProxy 提供一些选项来强制实现具有显式实现的接口吗?
不幸的是,DynamicProx 似乎对此没有任何选择。 ProxyGenerationOptions
或 MixinData
类 中没有这样的设置,如果您查看代码(从 MixinContributor
开始,导致 MethodGenerator
),您可以看到它只是从接口方法中复制名称和属性(可见性等)。
例如,假设我定义了一个接口如下:
public interface IWhatever
{
string Text { get; set; }
}
然后我在 mixin 中实现它:
public class WhateverMixin : IWhatever
{
string IWhatever.Text { get; set; }
}
当我构建一些给定 class 的代理时,整个显式实现的接口成员显示为隐式实现,因此它得到 published.
你知道我是否可以为 Castle DynamicProxy 提供一些选项来强制实现具有显式实现的接口吗?
不幸的是,DynamicProx 似乎对此没有任何选择。 ProxyGenerationOptions
或 MixinData
类 中没有这样的设置,如果您查看代码(从 MixinContributor
开始,导致 MethodGenerator
),您可以看到它只是从接口方法中复制名称和属性(可见性等)。