我創建了一個後端服務(Windows服務),它通過WCF向我的網絡客戶端提供數據,處理到數據庫的連接以及一些特定任務。WCF更新服務引用不添加新屬性
每次在我的DTO對象中更改某些內容時,我在更新服務引用時都會在客戶端正確進行更改。
但是現在Update-Process不會爲WCF服務創建正確的代理。 當我添加一些DTO對象時,這些信息會將新的DTO正確更新到客戶端,但是當我向現有的DTO對象添加一些屬性時,Update-ServiceReference函數不包括新的屬性。 我已經嘗試創建一個全新的應用程序,並在此測試場景中添加Service-Reference,但在這種情況下,新屬性也不會出現在代理類中。
第一次我注意到這種行爲是因爲我嘗試在我的「File.cs」DTO中創建一個新屬性。我認爲創建這個錯誤的名稱爲「文件」(類定義具有相同的名稱)。所以我決定將「File」DTO-Class重命名爲AttachmentFile,並在代理上正確創建新屬性。
但現在我嘗試添加屬性到類DeviceStayType和ProcessStateType和theres相同的行爲。沒有錯誤顯示和Git說,當我按更新服務引用但代理仍在客戶端丟失時,代理已更改。
下面是一些片段:
老DeviceStayType級:
[DataContract]
public class DeviceStayType : TypesBase
{
}
新DeviceStayType級:
[DataContract]
public class DeviceStayType : TypesBase
{
[DataMember(Name = "TableName")]
[MaxLength(200)]
public string TableName { get; set; }
}
生成的代理爲DeviceStayType
[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 {
}
希望任何人都可以幫忙:( 謝謝, 邁克爾
再次刪除並重新創建服務參考 – Rahul
這是我的第一個解決此問題的工具之一。我很傷心:如果我創建一個全新的應用程序,並將該引用添加到相同的服務中,這些屬性也會丟失。只有當我創建新的DTO類時,MEX纔會將新對象交付給客戶端 – Michael