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用于解释答案,而不仅仅是一行代码。