И снова сериализация
От: Аноним  
Дата: 23.10.08 14:17
Оценка:
Пытаюсь сериализировать такой класс:

[Serializable]
public class Test  
{
    private readonly int intValue;
    public int IntValue
    {
        get { return this.intValue; }
    }
    public Test(int intValue)
    {
        this.intValue = intValue;
    }
    public Test()
    {
    }
} 
private static string ObjectToXMLString<T>(T obj)
{
    var ns = new XmlSerializerNamespaces();
    ns.Add("", "");

    var xws = new XmlWriterSettings
                            {
                                OmitXmlDeclaration = true,
                                NewLineHandling = NewLineHandling.Entitize,
                                Indent = false
                            };

    var writer = new XmlSerializer(typeof(T));

    var sb = new StringBuilder();
    using (var sw = new StringWriter(sb))
    {

        using (XmlWriter xw = XmlTextWriter.Create(sw, xws))
        {
            writer.Serialize(xw, obj, ns);
            return sb.ToString();

        }
    }
}


Где то в коде:
Test test = new Test(4711);
string xml_test = ObjectToXMLString(test);

Строка xml_test принимает вид: "<Test />", что в принципе логично: ни одного read-write свойства нет. Однако класс string это как то делает?

string str = "4712";
string xml_str = ObjectToXMLString(str);

строка xml_str равна "<string>4712</string>"

Хотелось бы узнать как. Интерфейс IXmlSerializable класс string вроде не поддерживает.
Куда копать уважаемые знатоки?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.