2010-09-11 20 views
8

से अतिरिक्त गुणों को क्रमबद्ध करें मैं Hanselman showed it could be done for Stackoverflow पर एक एपीआई बनाने की प्रक्रिया पर हूं। मेरे पास एक गुच्छा EntityObject एंटिटी फ्रेमवर्क उत्पन्न कक्षाएं और DataService चीज उन्हें एटम और जेएसओएन को क्रमबद्ध करने के लिए है। मैं वेब सेवा के माध्यम से कुछ उत्पन्न गुणों का पर्दाफाश करना चाहता हूं। फर्स्ट- और LastName (लेकिन कुछ अधिक जटिल हैं) द्वारा उत्पन्न के रूप में पूर्ण नाम सोचें। मैंने इन्हें एंटिटी फ्रेमवर्क एंटिटी ऑब्जेक्ट को विस्तारित आंशिक वर्ग में जोड़ा है और उन्हें [DataMember] विशेषता दी है, फिर भी वे सेवा में दिखाई नहीं देते हैं। यहाँ (set अच्छा उपाय में फेंक दिया जाता है, या तो इसके बिना काम नहीं करता है) एक उदाहरण विशेषता है:डब्ल्यूसीएफ डेटा सेवा, इकाई फ्रेमवर्क आंशिक कक्षाओं

[DataMember] 
public string FullName 
{ 
    get 
    { 
     return (this.FirstName ?? "") + " " + (this.LastName ?? ""); 
    } 
    set { } 
} 

thesediscussions MSDN मंचों पर के अनुसार, इस एक ज्ञात समस्या है। क्या किसी को अच्छा कामकाज मिला है या क्या किसी के पास विकल्पों के लिए सुझाव हैं?

+4

उत्तर नहीं, लेकिन शैली के मामले में आपको विशेषता का उपयोग करते समय 'विशेषता' कहने की आवश्यकता नहीं है। '[डेटामेम्बर] 'आपको बस इतना ही चाहिए। –

उत्तर

0

मेरे पास एक डब्ल्यूसीएफ सेवा पर एंटीटी ऑब्जेक्ट्स को उजागर करने वाला एक ही मुद्दा था और आपने here से जुड़े वर्कअराउंड का उपयोग किया जो गुणों को निम्न गुण जोड़ने के लिए उन्हें क्रमबद्ध करने के लिए मजबूर करता है।

[global::System.Runtime.Serialization.DataMemberAttribute()] 

मुझे यह काम करने के किसी भी 'अच्छे' तरीके नहीं मिला है।

उदाहरण के लिए

, एक इकाई की तरह शिक्षक कुछ के लिए एक आंशिक वर्ग में जोड़ सकते हैं के साथ क्षेत्रों शीर्षक, forenames और उपनाम आप शिक्षक बुलाया दिया:

public partial class Teacher 
{ 
    [global::System.Runtime.Serialization.DataMemberAttribute()] 
    public string FullName 
    { 
     get { return string.Format("{0} {1} {2}", Title, Forenames, Surname); } 
     set { } 
    } 
} 
फिर

रूप में लंबे समय अपने WCF सेवा इंटरफ़ेस संदर्भ इस वर्ग के रूप में तो अतिरिक्त गुण serialized हैं और सेवा के उपभोक्ताओं के लिए उपलब्ध हैं।

उदा।

[OperationContract] 
List<Teacher> GetTeachers(); 
+0

एचएम, हालांकि काम नहीं कर रहा प्रतीत होता है। आप कौन सी संस्थाओं को serilizing कर रहे हैं? – friism

+0

मैंने ऊपर दिए गए उत्तर में एक और विस्तृत उदाहरण जोड़ा है। – Nelson

+0

मुझे लगता है कि इसे काम करने के लिए ईएफ 4 की आवश्यकता है। @ नेल्सन - क्या आप पुष्टि कर सकते हैं कि आपके पास .NET Framework 4.0 है? – Antony

संबंधित मुद्दे