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

时间:2015-06-08 18:23:41

标签: .net wcf inheritance datacontract

我刚刚在Visual Studio 2013中收到一条错误消息,指出“无法生成服务引用的代码”在尝试更新我的服务引用之后,将一个基类添加到我现有的几个数据合同。对于我的服务,我生成一个客户端数据协定程序集,我在客户端应用程序中引用它,以便我可以检查“重用引用程序集中的类型”选项。这允许我在共享它们的多个服务之间共享数据协定类。

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

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

[DataContract]
public class MyClass1 : BaseClass

一旦从基类继承,我的客户端应用程序就会错误地生成客户端代码,从而留下一个空的Reference.cs文件。

1 个答案:

答案 0 :(得分:1)

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