我有3个项目的解决方案: 1.客户端(参考:通过Visual Studio 2012创建的DataContracts和ServiceReference,名称为TaskerWcfService) 2. DataContracts 3. WCF服务(DataContracts)
首先我创建了WCFService,而在DataContracts中只有一个类:
[DataContract]
public class WorkItem
{
[DataMember]
public Int64 Id { get; set; }
[DataMember]
public String Title { get; set; }
[DataMember]
public String Description { get; set; }
[DataMember]
public String ItemType { get; set; }
}
然后,我创建了一个带有ServiceReference的客户端(名称为:TaskerWcfReference),并且WorkItem类的命名空间已经是 - DataContracts lib。 最后,我使用附加类扩展了WCF服务和DataContracts:
public class InfoData
{
[DataMember]
public Guid Id { get; set; }
[DataMember]
public String Value { get; set; }
[DataMember]
public Int32 Order { get; set; }
[DataMember]
public bool IsDefault { get; set; }
}
但是当我更新了ServiceReference时,我发现InfoData类位于自动生成的代理中,它的命名空间是:TaskerWcfReference.InfoData。
为什么以类似的方式描述类 - 放在不同的地方? 服务契约的功能以相同的方式返回Generic.List和T.服务合同的描述也是类似的。