Возможно ли получить значение из XML и преобразовать его? - PullRequest
1 голос
/ 10 сентября 2011

Я создаю программу, в которой я сохраняю информацию в XML, в этот XML я помещаю значение и его тип (DataType - это XML).

Есть ли способ получить это значение в объектной переменной с ее типом данных? У меня проблемы, когда значение представляет собой строку или десятичное число, целые числа и т. Д.

Пример:

<Answer ProblemID="0" ObjectiveID="1" IsCorrect="False">
  <Result DataType="System.Nullable`1[System.Decimal]" Value="45" />
</Answer>
<Answer ProblemID="0" ObjectiveID="1" IsCorrect="False">
  <Result DataType="System.Nullable`1[System.Decimal]" Value="Null" />
</Answer>
<Answer ProblemID="0" ObjectiveID="5" IsCorrect="False">
  <Result DataType="System.Nullable`1[Factory.Factories.Comparison2.Comparators]" Value="Null" />
</Answer>

Ответы [ 2 ]

2 голосов
/ 10 сентября 2011

звучит так, как вам нужно, это сериализация xml, что-то вроде этого:

// serialize an object to XML string
public string ToXml<_type>(_type itm)
{
    XmlSerializer ser = new XmlSerializer(itm.GetType());
    StringWriter sw = new StringWriter();
    ser.Serialize(sw, itm);
    return sw.ToString();
}

public _type FromXml<_type>(string str)
{
    XmlSerializer ser = new XmlSerializer(itm.GetType());
    return (_type)ser.Deserialize(new StringReader(xml));
}

edit

вы можете управлять тем, как объект сериализуется, используя атрибуты наэлементы, которые вы хотите сериализовать (или нет):

public class Movie
{
   // Serialize the price field as an attribute with the given namspace
   [XmlAttribute( Namespace ="www.diranieh.com")]
   public decimal price;

   //serialize as <MovieName>
   [XmlElement("MovieName")]
   public string Title;

   // dont serialize this
   [XmlIgnore]
   public int Rating;

}

дополнительная информация здесь, на MSDN

0 голосов
/ 10 сентября 2011

Хорошо, если у вас есть объект со свойствами string, decimal, int, вы можете сериализовать объект в XML.Я не уверен, что это то, что вы ищете, хотя ...

http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...