如果我在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逻辑的最佳方法是什么?
答案 0 :(得分:0)
您应该能够在生成客户端代码时通过在svcutil中指定程序集来共享程序集。通用方面不重要。
检查此链接以获取示例: http://www.codeproject.com/Articles/19625/Sharing-Types-Between-WCF-Service-and-Client
更新: 您可能还需要查看KnownTypes属性以告诉序列化程序它可以期望哪些泛型类型。