【问题标题】:How can I mark the methods in a WCF client proxy generated class as virtual如何将 WCF 客户端代理生成的类中的方法标记为虚拟
【发布时间】:2012-11-05 15:36:29
【问题描述】:

在 VS 2010 中,我正在创建一个服务引用,该服务引用的代码生成 WCF 客户端代理类 Referencence.cs。我需要此类中的方法具有 Virtual 修饰符,以便它们可以在 Mock 中使用。

当然我可以手动编辑生成的代码,但每次我更新引用时,代码都会重新生成并清除我的更改。

我是否可以更好地控制 WCF 客户端代理类的生成方式?有没有办法让代码生成器总是添加 Virtual 修饰符?我希望这更加自动化,以便当其他开发人员需要更新引用时,他们不必知道或记得手动编辑生成的代码并添加虚拟修饰符。

【问题讨论】:

    标签: c# visual-studio-2010 wcf web-services visual-studio


    【解决方案1】:

    另一种方法是创建一个接口。代理类生成为partial,这意味着您可以为该类创建另一个部分文件,并指定该类实现您的接口,即使实际实现在生成的类中。然后,您可以模拟界面,并根据您的内心内容重新生成代理。

    例如,您生成的类可能是:

    public partial class SomeService
    {
        public string GetSomething()
        {
            return ... 
        }
    }
    

    您可以为此创建一个接口:

    public interface ISomeService
    {
        string GetSomething();
    }
    

    然后为生成的类添加一个空的部分文件:

    public partial class SomeService : ISomeService
    {
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-16
      • 2011-03-23
      • 2012-07-29
      • 1970-01-01
      • 2010-10-22
      相关资源
      最近更新 更多