Сериализация .NET Xml: целочисленный элемент с атрибутом? - PullRequest
1 голос
/ 22 июля 2010

Можно ли добиться следующего в c # ...

для класса ниже ...

public class Foo{
 public int BarId{get;set;}
 public string BarString{get;set;}
}

Я хочу получить следующий XML:

<Foo>
  <BarId BarString="something">123</BarId>
</Foo>

Ответы [ 2 ]

4 голосов
/ 26 июля 2010

ArsenMkrt находится на правильном пути, но отсутствует содержание элемента, я предлагаю пересмотренную версию:

class BarId
{
    [XmlText()]
    public int Content {get; set;}

    [XmlAttribute()]
    public string BarString {get; set;}
}

public class Foo{
    public BarId BarId {get; set;}
}

Таким образом, вы получаете содержимое в виде целого числа.

0 голосов
/ 22 июля 2010

Вы должны создать класс BarId, в котором есть BarString

class BarId
{
    [XmlAttribute]
    public string BarString{get;set;}
}

public class Foo{
 public BarId BarId{get;set;}
}

Или вы можете использовать механизм пользовательской сериализации, например здесь

...