c# - 如何将 WCF 客户端代理生成的类中的方法标记为虚拟

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

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

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

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

最佳答案

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

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

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

你可以为此创建一个接口(interface):

public interface ISomeService
{
    string GetSomething();
}

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

public partial class SomeService : ISomeService
{
}

关于c# - 如何将 WCF 客户端代理生成的类中的方法标记为虚拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13235345/

相关文章:

c# - 将 sql 层次结构读入 C# 对象

c# - IronPython 无法导入模块 os

c# - 从 LUA 脚本环境调用 C# DLL

c# - 光标停留在我在 VS 文本编辑器中单击的位置

c# - namespace 在项目中不可见。 (命名空间中不存在类型或命名空间名称)

c# - 添加 WCF 服务引用时不导入枚举值

c# - Linq - 局部不同

visual-studio-2010 - Visual Studio 2008对新.NET 4的支持

entity-framework - 是否可以在 VS2010 中检索 DDL 生成模板内的连接字符串?

c# - 可以通过 WCF 服务传递 Func<T,bool> 吗?