我正在创建一个程序,我将信息保存在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>
答案 0 :(得分:2)
听起来像你想要的是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));
}
修改的
您可以使用要序列化(或不是)的项目上的属性来控制对象的序列化方式:
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;
}
更多信息here on msdn
答案 1 :(得分:0)
好吧,如果你有一个带有string,decimal,int属性的对象,你可以将对象序列化为XML。我不确定这是不是你想要的......
http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.aspx