मैं डब्ल्यूसीएफ में एक सेवा विधि से एक जटिल प्रकार वापस करने की कोशिश कर रहा हूं। मैं सी # और .NET 4 का उपयोग कर रहा हूं। यह जटिल प्रकार invariant (उसी तरह .net तार हैं) का मतलब है। इसके अलावा, सेवा केवल इसे लौटाती है और कभी भी इसे तर्क के रूप में प्राप्त नहीं करती है।डब्ल्यूसीएफ डाटाकंट्रैक्ट रीडोनली गुणों के साथ
यदि मैं गुणों पर केवल गेटर्स को परिभाषित करने का प्रयास करता हूं तो मुझे रन टाइम त्रुटि मिलती है। मुझे लगता है कि ऐसा इसलिए है क्योंकि कोई सेटर्स क्रमिकरण विफल होने का कारण बनता है। फिर भी, मुझे लगता है कि यह प्रकार invariant होना चाहिए।
उदाहरण:
[DataContract]
class A
{
[DataMember]
int ReadOnlyProperty {get; private set;}
}
सेवा क्रमबद्धता के साथ एक समस्या की वजह से लोड करने के लिए विफल रहता है।
क्या डब्लूसीएफ डेटाकंट्रैक्ट पर रीडोनली गुण बनाने का कोई तरीका है? शायद serializer की जगह से? यदि हां, तो कैसे? यदि नहीं, तो आप इस समस्या के लिए क्या सुझाव देंगे?
धन्यवाद,
आसफ
आप केवल पढ़ने के लिए फ़ील्ड का उपयोग करने में सक्षम हो सकता (* नहीं गुण *) और उन्हें अपने वर्ग के निर्माण में आरंभ कर देगा। इसके अलावा ..., संभावित डुप्लिकेट: http://stackoverflow.com/q/1873741/945456 –
ऑटो-कार्यान्वित केवल-केवल गुणों के लिए अपरिवर्तनीय कक्षाओं और सी # -6.0 के समर्थन के साथ आज यह और भी महत्वपूर्ण है। – binki