小编use*_*017的帖子

MemoryStream泄漏

谁能告诉我们下面这段代码有什么问题?我们这里有一个对象序列化程序,它应该返回传递给它的任何对象的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)

c# memory-leaks memorystream

7
推荐指数
1
解决办法
1773
查看次数

标签 统计

c# ×1

memory-leaks ×1

memorystream ×1