C#将异常对象转换为XML文档
我希望能够创建一个XML文档,从异常对象保存到SQL数据库。有没有一种方法可以轻松地将异常对象转换为XML文档?我希望能够做到以下几点:C#将异常对象转换为XML文档,c#,xml,C#,Xml,我希望能够创建一个XML文档,从异常对象保存到SQL数据库。有没有一种方法可以轻松地将异常对象转换为XML文档?我希望能够做到以下几点: public void WriteError(Exception ex) { var doc = new XmlDocument(); doc.Load(ex); sql.Insert(doc); } 您正在寻找的是XmlSerializer。序列化正在更改为字符串,XmlSerializer将进一步改进。我使用扩展方法将生成的XML
public void WriteError(Exception ex)
{
var doc = new XmlDocument();
doc.Load(ex);
sql.Insert(doc);
}
您正在寻找的是XmlSerializer。序列化正在更改为字符串,XmlSerializer将进一步改进。我使用扩展方法将生成的XML写入文件,但您可以根据自己的需要对其进行调整:
public static void WriteToXmlFile<T>(string filePath, T objectToWrite, bool append = false) where T : new()
{
TextWriter writer = null;
try
{
var serializer = new XmlSerializer(typeof(T));
writer = new StreamWriter(filePath, append);
serializer.Serialize(writer, objectToWrite);
}
finally
{
if (writer != null)
writer.Close();
}
}
public static void WriteToXmlFile(字符串文件路径,T objectToWrite,bool append=false),其中T:new()
{
TextWriter=null;
尝试
{
var serializer=newxmlserializer(typeof(T));
writer=newstreamwriter(文件路径,追加);
serializer.Serialize(writer,objectToWrite);
}
最后
{
if(writer!=null)
writer.Close();
}
}
以下是如何使用@forkfork建议的XmlSerializer
:
public void WriteError(Exception ex)
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(Exception));
using (var memoryStream = new MemoryStream()) {
xmlSerializer.Serialize(memoryStream, ex);
var streamReader = new StreamReader(memoryStream);
sql.Insert(streamReader.ReadToEnd());
}
}
使用xml linq:
public static void WriteError(Exception ex)
{
XDocument doc = new XDocument("Error", new object[] {
new XElement("message", ex.Message),
new XElement("stacktrace", ex.StackTrace),
new XElement("helplink", ex.HelpLink)
});
sql.Insert(doc);
}
您可以检查一下,这里可能已经回答了这个问题