.net XmlSerializer.Serialize需要很长时间。。。为什么?
给定RssXmlHelper.cs中RssToolkit的以下代码:.net XmlSerializer.Serialize需要很长时间。。。为什么?,.net,c#-4.0,xmlserializer,sgen,.net,C# 4.0,Xmlserializer,Sgen,给定RssXmlHelper.cs中RssToolkit的以下代码: /// <summary> /// Returns XML of the Generic Type. /// </summary> /// <param name="rssDocument">The RSS document.</param> /// <typeparam name="T">RssDocumentBase<
/// <summary>
/// Returns XML of the Generic Type.
/// </summary>
/// <param name="rssDocument">The RSS document.</param>
/// <typeparam name="T">RssDocumentBase</typeparam>
/// <returns>string</returns>
public static string ToRssXml<T>(T rssDocument) where T : RssDocumentBase
{
if (rssDocument == null)
{
throw new ArgumentNullException("rssDocument");
}
using (StringWriter output = new StringWriter(new StringBuilder(), CultureInfo.InvariantCulture))
{
XmlSerializer serializer = new XmlSerializer(typeof(T));
serializer.Serialize(output, rssDocument);
return output.ToString();
}
}
我的RssToolkit项目的目标框架设置为4.0,与.Net 4的Windows SDK相匹配。这不正确吗?您可以使用Windows SDK附带的XML序列化程序生成器工具生成序列化程序集。通过在大型类上使用它,我看到了巨大的改进
它基本上会生成知道如何序列化和反序列化域中的每个对象的代码。生成DLL后,可以将其作为程序集引用包含在项目中,然后使用其中的类,而不是现在使用的
XmlSerializer
。找到了4.0版本。出于某种原因,包含了v2.0和v4.0。bin\NETFX 4.0 Tools\sgen.exe中的4.0证明这基本上使问题过于复杂。因为该服务只需要返回序列化数据,所以我只是用老式的方式来做——读取HTML流并传递它。标题有点误导:WCF与慢速XmlSerializer
的问题无关,所以我编辑了它。
Error: An attempt was made to load an assembly with in incorrect format [path to rsstoolkit.dll]
- Could not load file or assemply [path to rsstoolkit.dll] or one of its dependencies. This assembly was build by a runtime newer than the currently loaded runtime and cannot be loaded.