Добрый день, Михаил.
Пытаюсь воспользоваться вашей сериализацией. Возникло несколько вопросов:1) как объявить XML-атрибут. 2)как объявить корень сериализации( то есть название типа) 3) есть ли у Вас
какая-нить документация по вашей сериализации. Пришлось отказаться от родного XmlSerializer ибо как я узнал он не умеет десериализовать типы типа internal. Вот пример моего кода:
Code
[XmlRoot(ElementName = "result")]
public class CommandResult
{
private static XmlSerializer _serializer;
protected static XmlSerializer Serializer
{
get
{
if (_serializer == null)
{
_serializer = new XmlSerializer(typeof(CommandResult));
}
return _serializer;
}
}
[XmlAttribute("success")]
public bool Success
{
get;
set;
}
[XmlAttribute("transactionid")]
public String TransactionId
{
get;
set;
}
[XmlElement("message")]
public String Message
{
get;
set;
}
[XmlIgnore]
public int? Difference
{
get;
set;
}
[XmlAttribute("diff")]
public String DifferenceAsString
{
get
{
if (Difference == null) return null;
else
return ((int)Difference).ToString();
}
set
{
if (value == null) Difference = null;
else
Difference = int.Parse(value);
}
}
public static CommandResult FromXmlString(String s)
{
s = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" + s;
XmlSerializer serializer = Serializer;
MemoryStream str = new MemoryStream(Encoding.UTF8.GetBytes(s));
CommandResult result = (CommandResult)serializer.Deserialize(str);
str.Close();
return result;
}
}