Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Castle DynamicProxy生成的代理能否强制将成员实现为显式接口实现?_C#_.net_Interface_Mixins_Castle Dynamicproxy - Fatal编程技术网

C# Castle DynamicProxy生成的代理能否强制将成员实现为显式接口实现?

C# Castle DynamicProxy生成的代理能否强制将成员实现为显式接口实现?,c#,.net,interface,mixins,castle-dynamicproxy,C#,.net,Interface,Mixins,Castle Dynamicproxy,例如,假设我定义了一个接口,如下所示: public interface IWhatever { string Text { get; set; } } 我在mixin中实现它: public class WhateverMixin : IWhatever { string IWhatever.Text { get; set; } } 当我构建某个给定类的代理时,整个显式实现的接口成员显示为隐式实现,因此它将被发布 您知道我是否可以给Castle DynamicProxy

例如,假设我定义了一个接口,如下所示:

public interface IWhatever
{
     string Text { get; set; }
}
我在mixin中实现它:

public class WhateverMixin : IWhatever
{
     string IWhatever.Text { get; set; }
}
当我构建某个给定类的代理时,整个显式实现的接口成员显示为隐式实现,因此它将被发布


您知道我是否可以给Castle DynamicProxy一些选项来强制实现带有显式实现的接口吗?

不幸的是,DynamicProx似乎没有任何选项。
ProxyGenerationOptions
MixinData
类中没有这样的设置,如果您查看代码(从
MixinContributor
开始,这导致),您可以看到它只是从接口方法复制名称和属性(可见性等)。

只是好奇。。。您知道有其他代理生成器已经实现了这样的功能吗?不,对不起,我不知道还有其他代理生成器,尽管您可能可以使用来构建自己的代理生成器。或者,如果您只需要mixin功能,您可以尝试re-motion,该库默认显式实现mixin接口。(请注意,我是这两个库的原始作者之一。)实际上,另一种选择是将IL-weaving与PostSharp结合使用。最后,如果你想知道这个问答的背景是什么。。。这是因为我在去年开发了一些开源软件:它是一个针对.NET的通用变更跟踪库。我问这个问题是因为一些用户提出了以下问题: