2010-01-18 15 views
5

मैं स्ट्रिंग प्रॉपर्टी के साथ क्रमबद्धता/deserialization के लिए एक सी # ऑब्जेक्ट बनाने की कोशिश कर रहा हूं। संपत्ति एक तत्व उत्पन्न करने के लिए की जरूरत है और यह भी एक विशेषता है:सी # एक्सएमएल स्ट्रिंग एलिमेंट नाम विशेषता

जैसे:

... 
<Comment Name="CommentName"></Comment> 
... 

अगर संपत्ति एक स्ट्रिंग है, मैं नहीं कर सकते विशेषता जोड़ने के लिए कैसे, और अगर टिप्पणी एक वस्तु है देखना नाम और मूल्य गुणों के साथ यह उत्पन्न होता है:

... 
<Comment Name="CommentName"> 
    <Value>comment value</Value> 
</Comment> 
... 

कोई विचार?

उत्तर

6

तुम एक प्रकार पर उन 2 गुण को बेनकाब और संकेत मिलता है कि यह एक अतिरिक्त तत्व निर्मित न करे [XmlText] विशेषता का उपयोग करने की आवश्यकता होगी:

using System; 
using System.Xml.Serialization; 
public class Comment 
{ 
    [XmlAttribute] 
    public string Name { get; set; } 
    [XmlText] 
    public string Value { get; set; } 
} 
public class Customer 
{ 
    public int Id { get; set; } 
    public Comment Comment { get; set; } 
} 
static class Program 
{ 
    static void Main() 
    { 
     Customer cust = new Customer { Id = 1234, 
      Comment = new Comment { Name = "abc", Value = "def"}}; 
     new XmlSerializer(cust.GetType()).Serialize(
      Console.Out, cust); 
    } 
} 

आप वस्तु ही पर उन गुणों समतल करना चाहते हैं (Customer उदाहरण मेरे उदाहरण में), आपको ऑब्जेक्ट मॉडल को XmlSerializer चाहता है, या पूरी तरह से अलग डीटीओ मॉडल फिट करने के लिए अतिरिक्त कोड की आवश्यकता होगी।

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