WCF 通过继承重用类型 - 无法生成客户端代码

WCF reusing types with inheritance - cannot generate client code

我刚刚在 Visual Studio 2013 年收到一条错误消息,指出“无法为服务引用生成代码”基于 class 我现有的几个数据合同。对于我的服务,我生成了一个在客户端应用程序中引用的客户端数据合同程序集,以便我可以检查 "Reuse types in referenced assemblies" 选项。这允许我在多个共享它们的服务之间共享数据合同 classes。

我发现了一些不必要地重复属性的数据合同,因此我创建了一个基础 class 供它们继承。

[KnownType(typeof(MyClass1))]
[DataContract]
public class BaseClass
{
    public Guid ID {get; set;}
    public string Name {set; set;}
}

[DataContract]
public class MyClass1 : BaseClass

我从基础 class 继承后,我的客户端应用程序就收到无法生成客户端代码的错误,留下一个空的 Reference.cs 文件。

我最初将我的基础 class 定义为抽象的,所以我首先删除了它。没有运气。我还尝试添加各种 KnownType 和 ServiceKnownType 属性,但没有成功。我认为这没有任何意义,所以我尝试重新启动 Visual Studio 然后更新服务引用。瞧!重新启动后它生成得很好。我希望这可以节省一些时间!