C# WCF更新服务引用不会添加新属性

C# WCF更新服务引用不会添加新属性,c#,web-services,wcf,visual-studio-2015,C#,Web Services,Wcf,Visual Studio 2015,我创建了一个后端服务(Windows服务),它通过WCF向我的网络客户端提供数据,处理与数据库的连接和一些特定任务 每次在我的DTO对象中更改某些内容时,当我更新服务引用时,客户端的更改都是正确的 但是现在更新过程没有为WCF服务创建正确的代理。 当我添加一些DTO对象时,有关新DTO的信息将正确更新到客户端,但当我向现有DTO对象添加一些属性时,更新服务引用函数不包括新属性。 我已经尝试创建一个全新的应用程序,并在此测试场景中添加服务引用,但在这种情况下,新属性不会出现在代理类中 我第一次注意

我创建了一个后端服务(Windows服务),它通过WCF向我的网络客户端提供数据,处理与数据库的连接和一些特定任务

每次在我的DTO对象中更改某些内容时,当我更新服务引用时,客户端的更改都是正确的

但是现在更新过程没有为WCF服务创建正确的代理。 当我添加一些DTO对象时,有关新DTO的信息将正确更新到客户端,但当我向现有DTO对象添加一些属性时,更新服务引用函数不包括新属性。 我已经尝试创建一个全新的应用程序,并在此测试场景中添加服务引用,但在这种情况下,新属性不会出现在代理类中

我第一次注意到这种行为是在我试图在“File.cs”DTO中创建一个新属性时。我认为是名称“File”(类定义有相同的名称)造成了这个错误。因此,我决定将“File”DTO类重命名为AttachmentFile,并在代理上正确创建新属性

但是现在我尝试将属性添加到类DeviceStateType和ProcessStateType中,并且有相同的行为。没有显示任何错误,Git说当我按Update Service References时代理已更改,但客户端仍然缺少属性

以下是一些片段:

旧的DeviceStatyType类:

    [DataContract]
public class DeviceStayType : TypesBase
{
}
    [DataContract]
public class DeviceStayType : TypesBase
{
    [DataMember(Name = "TableName")]
    [MaxLength(200)]
    public string TableName { get; set; }
}
新的DeviceStatyType类:

    [DataContract]
public class DeviceStayType : TypesBase
{
}
    [DataContract]
public class DeviceStayType : TypesBase
{
    [DataMember(Name = "TableName")]
    [MaxLength(200)]
    public string TableName { get; set; }
}
为DeviceStatyType生成的代理

[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name="DeviceStayType", Namespace="http://schemas.datacontract.org/2004/07/ProductLifecycle.Backend.Models.DTO")]
[System.SerializableAttribute()]
public partial class DeviceStayType : ProductLifecycle.Frontend.CommunicationService.TypesBase {
}
希望任何人都能提供帮助:( 谢谢
Michael

好的。经过一些测试后,我决定将模型外包到一个DLL中,这两个项目(后端和前端)都有参考。 似乎这是解决此问题的唯一方法。我认为这种行为是在有两个Web服务时产生的;一个在前端作为回调(流式处理,因为有更好的性能)两个服务使用相同的类,我认为这可能是一个原因,因为后端服务将模型发送到前端客户端,前端服务也将模型发送到后端客户端。
现在,对于外包类和更轻的转换,该场景在我的情况下可以工作。

好的。经过一些测试,我决定将模型外包到一个DLL中,项目(后端和前端)都有一个参考。 似乎这是解决此问题的唯一方法。我认为这种行为是在有两个Web服务时产生的;一个在前端作为回调(流式处理,因为有更好的性能)两个服务使用相同的类,我认为这可能是一个原因,因为后端服务将模型发送到前端客户端,前端服务也将模型发送到后端客户端。
现在,对于外包类和更轻的转换,这种情况在我的情况下是可行的。

再次删除并重新创建服务引用这是我第一次尝试解决这个问题。我多么难过:如果我创建一个全新的应用程序并将引用添加到同一个服务,那么属性也会丢失。只有当我创建新的DTO类时MEX将新对象交付给clientdelete并重新创建服务引用这是我修复此问题的第一次尝试之一。我有多难过:如果我创建一个全新的应用程序并将引用添加到同一服务,则属性也会丢失。只有在我创建新的DTO类时,MEX才会将新对象交付给客户端