谁能告诉我们下面这段代码有什么问题?我们这里有一个对象序列化程序,它应该返回传递给它的任何对象的XML字符串.
我们一直在讨论这个问题,因为我们有一个多次调用这个程序的程序,我们看到我们的内存使用量一直很高(甚至在程序完成后仍然存在)...我们已经完成了搜索但是徒劳无功.stream对象在一个"using"语句中,所以我们认为这应该是自己处理的..请帮忙.
public static string ToXML(this IMessage m)
{
try
{
var serializer = SerializerFactory.Create(m.GetType());
using (var stream = new MemoryStream())
{
serializer.Serialize(new[] { m }, stream);
stream.Position = 0;
var s = Encoding.ASCII.GetString(stream.ToArray());
return s;
}
}
catch (Exception e)
{
return string.Format("Message unserializable: {0}", e.Message);
}
}
Run Code Online (Sandbox Code Playgroud)
btw SerializerFactory看起来像这样:
public class SerializerFactory
{
public static IMessageSerializer Create(Type t)
{
var types = new List<Type> { t };
var mapper = new MessageMapper();
mapper.Initialize(types);
var serializer = new XmlMessageSerializer(mapper); …Run Code Online (Sandbox Code Playgroud)