C# 如何通过记录对象的类型定义XmlSerializer的类型?

C# 如何通过记录对象的类型定义XmlSerializer的类型?,c#,.net,xml-serialization,C#,.net,Xml Serialization,此行中的以下代码有问题: XmlSerializer x = new XmlSerializer(typeof(????)); 我希望类型由记录对象定义,可以这样做吗 public void ConvertRecordObjectToXML(object RecordObject, out string XML) { string xml = string.Empty; try { string XmlizedString = null;

此行中的以下代码有问题:

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 = "";
    }
}
你试过这个吗

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

每个对象都从对象继承方法GetType,因此您应该能够使用:

XmlSerializer x = new XmlSerializer(RecordObject.GetType());
C typeof关键字采用类名并生成类型为的对象。GetType会产生同样的结果,但会在实例上操作。

+1用于解释答案,而不仅仅是一行代码。