2010-01-18 16 views
5

Bir string özelliği ile serileştirme/serileştirme için bir C# nesnesi oluşturmaya çalışıyorum. özellik bir öğe oluşturmak gerekiyor ve ayrıca bir öznitelik vardır:C# Name özniteliği ile XML dize öğesi

örn: tesiste dizedir

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

, ben açıklama bir nesne ise özniteliğini ekleyin ve nasıl göremiyorum Oluşturduğu Ad ve Değer özellikleriyle:

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

Herhangi bir fikir?

cevap

6

Bir tipine o 2 özelliklerini ortaya çıkarmak ve onu ekstra eleman oluşturmayan gerektiğini belirtmek için [XmlText] özellik kullanmak gerekir: Eğer nesnenin kendisi üzerine bu özellikleri düzleştirmek istiyorsanız

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); 
    } 
} 

(örneğimdeki Customer örneği), nesne modelinin XmlSerializer'un istediği gibi davrandığını veya tamamen ayrı bir DTO modelini yapmak için fazladan kodlara ihtiyacınız olacaktır.

İlgili konular