0
泛型如果我在一個WCF服務getter和setter方法在WCF
[DataContract(Name = "TestGenericOf{0}")]
public class TestGeneric<T>
{
[DataMember]
public string TestProperty
{
get { return _testProperty.ToUpper(); }
set { _testProperty = value; }
}
private string _testProperty;
}
和客戶端(MVC在這種情況下)有一個通用的消費類通過服務引用服務。我想分享服務和客戶端之間的getter和setter邏輯;然而,由於該類是通用的,所以在客戶端創建的類與服務上的類不同。
public partial class TestGenericOfstring : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
[System.Runtime.Serialization.OptionalFieldAttribute()]
private string TestPropertyField;
[System.Runtime.Serialization.DataMemberAttribute()]
public string TestProperty {
get {
return this.TestPropertyField;
}
set {
if ((object.ReferenceEquals(this.TestPropertyField, value) != true)) {
this.TestPropertyField = value;
this.RaisePropertyChanged("TestProperty");
}
}
}
}
要在服務和客戶端上實現相同的getter,setter邏輯,最好的方法是什麼?
這只是一個指定合同的數據合同,而不是明確的行爲。對ToUpper()的調用不會出現在客戶端(除非客戶端有你的類)。 – sisve 2012-04-02 22:25:10
我相信對'ToUpper'的調用仍然會發生。當你的客戶調用Web服務時,WS返回的數據將在你的代碼中使用getter。除非你調用WS並獲取這個對象,然後重複設置並獲取該屬性,否則不應該有任何問題。返回的初始對象應該有'ToUpper'調用。 – 2012-04-02 22:27:44
@RyanP非常真實,但我試圖在客戶端設置屬性。我猜,最簡潔的方法是重複客戶端的邏輯? – user654616 2012-04-02 22:33:22