मैं अपने WCF सेवा के लिए डेटा अनुबंध वर्ग निम्नलिखित है:WCF सेवा मूलभूत मूल्यों
[DataContract(Name = "MyClassDTO")]
public class MyClass
{
private string name = "Default Name";
[DataMember]
public string Name
{
get { return name; }
set { name = value; }
}
}
जब मैं का उपयोग दृश्य स्टूडियो के जोड़े सेवा संदर्भ एक WCF सेवा संदर्भ उत्पन्न करने के लिए उत्पन्न DataContract कुछ इस तरह दिखता काम करते हैं:
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name = "MyClassDTO", Namespace = "xxx")]
[System.SerializableAttribute()]
public partial class MyClassDTO : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
{
[System.Runtime.Serialization.OptionalFieldAttribute()]
private string NameField;
[System.Runtime.Serialization.DataMemberAttribute()]
public string Name
{
get
{
return this.NameField;
}
set
{
if ((object.ReferenceEquals(this.NameField, value) != true))
{
this.NameField = value;
this.RaisePropertyChanged("Name");
}
}
}
}
इसका मतलब है कि, डिफ़ॉल्ट मान "डिफ़ॉल्ट नाम" खो जाए और निम्न व्यवहार होता है:
MyClassDTO mcdto = new MyClassDTO();
serviceClient.DoSomething(mcdto);
[OperationContract]
void DoSomething(MyClass mc){
mc.Name //<-- == null but I want it to be "Default Name"
}
क्या इस तरह से डेटा अनुबंध को कॉन्फ़िगर करने का कोई तरीका है, परिभाषित डिफ़ॉल्ट मान "डिफ़ॉल्ट नाम" खो नहीं जाता है?
में अतिरिक्त जानकारी के: मैं संदर्भित assemblys, उदा प्रकार के पुन: उपयोग के बिना एक सेवा संदर्भ का उपयोग क्लाइंट की तरफ वर्ग MyClass डीटीओ उत्पन्न एक सर्वर साइड वर्ग MyClass
हाँ दिशा सर्वर के साथ -> क्लाइंट यह ठीक काम करता है। लेकिन दिशा में क्लाइंट -> सर्वर यह काम नहीं करता है। ध्यान दें कि क्लाइंट साइट पर डेटाकंट्रैक्ट क्लास MyClassDTO एक जेनरेट किया गया है जिसका उपयोग केवल क्लाइंट साइड पर किया जाता है।क्लाइंट MyClass नहीं जानता है और सर्वर पक्ष क्लास MyClassDTO – Fabiano