2011-02-08 2 views
0

Проблемы с кодом ниже, на этой линии:Как определить тип XmlSerializer по типу объекта записи?

XmlSerializer x = new XmlSerializer(typeof(????)); 

Я хочу типа быть определить с помощью объекта звукозаписывающего, я могу это сделать?

public void ConvertRecordObjectToXML(object RecordObject, out string XML) 
{ 
    string xml = string.Empty; 

    try 
    { 
     string XmlizedString = null; 
     MemoryStream memoryStream = new MemoryStream(); 
     XmlSerializer x = new XmlSerializer(typeof(????)); // <---- ????? 
     XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8); 

     x.Serialize(xmlTextWriter, RecordObject); 
     memoryStream = (MemoryStream)xmlTextWriter.BaseStream; 
     XmlizedString = UTF8ByteArrayToString(memoryStream.ToArray()); 
     XML = XmlizedString; 
    } 
    catch (Exception e) 
    { 
     System.Console.WriteLine(e); 
     xml = ""; 
    } 
} 

ответ

3

Вы пробовали это?

XmlSerializer x = new XmlSerializer(RecordObject.GetType()); 
6

Каждый объект наследует метод GetType() от объекта, так что вы должны быть в состоянии использовать:

XmlSerializer x = new XmlSerializer(RecordObject.GetType()); 

C# TypeOf ключевое слово берет имя класса и дает объект типа Type , GetType() дает то же самое, но работает вместо экземпляра.

+1

+1 для ответа с * пояснения *, а не только строки кода. –

Смежные вопросы