2009-10-29 12 views
14

का उपयोग कर एक XML विशेषता कैसे जोड़ूं, मेरे पास एक साधारण वर्ग है जिसे मैं क्रमबद्ध कर रहा हूं।मैं डेटाकंट्रैक्ट

[DataContract(Name = "Test", Namespace = "")] 
public class Test 
{ 
    [DataMember(Order = 0, Name = "Text")] 
    public string Text { get; set; } 

    public Test() {} 
} 

यह निम्न XML बाहर किक:

<Test> 
    <Text>Text here</Text> 
</Test> 

क्या मैं चाहता हूँ है:

<Test> 
    <Text type="MyType">Text here</Text> 
</Test> 

मैं कैसे जोड़ सकता हूँ XML तत्वों जिम्मेदार बताते हैं?

अग्रिम धन्यवाद।

उत्तर

13

आप डेटाकंट्रैक्ट में विशेषताओं को जोड़ नहीं सकते हैं। आपको या तो एक वर्ग का उपयोग करना है जो ISERializable लागू करता है या .Net XmlSerializer का उपयोग करता है।

+0

xml के लिए 'IXmlSerializable'। –

+4

सीरियलाइजेशन करने वाले सिस्टम के आधार पर, ओपी क्या पूछ रहा है, यह करना संभव है - देखें: http://stackoverflow.com/questions/4858798/datacontract-xml-serialization-and-xml-attributes/4859084#4859084 – jeffreypriebe

0

बिल्कुल कोई जवाब नहीं है, लेकिन आप आउटपुट xml प्रारूप को पूरी तरह से नियंत्रित करने के लिए IXmlSerializable को लागू करने का प्रयास कर सकते हैं।

0

मैं XElement घोषित करके इसे प्राप्त करने में सक्षम था जिसमें इसमें परिभाषित गुण हैं। पूर्व:

public XElement Text { get; set;} 
+2

कोड '[DataMember (नाम =" परीक्षण ")] सार्वजनिक XElement परीक्षण = नए XElement (" रूट ", नई सूची () {" 1 "," 2 "," 3 "});' पैदावार ' <रूट xmlns =" ​​"> 123 ' जो शायद नहीं है क्या quenstioner – codingdave

-2

[XMLAttribute] के साथ प्रकार विशेषता जोड़ें और [XmlText] के साथ तत्व मान जोड़ें।

public class Test 
{ 
    public text Text; 

    public Test() 
    { 
     Text = new text(); 
    } 

    [DataContract(Name = "Test", Namespace = "")] 
    public class text 
    { 
     [XmlText] 
     public string Text { get; set; } 
     [XmlAttribute] 
     public string type { get; set; } 
    } 
} 
+1

इरादा है मुझे लगता है कि कोशिश की और पाठ मिलता है और न ही धारावाहिक नहीं लिखा – codingdave

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