代码之家  ›  专栏  ›  技术社区  ›  mhenrixon

在WCF中何时释放返回的memoryStream?

  •  3
  • mhenrixon  · 技术社区  · 15 年前

    在下面的场景中,我只想返回一个字符串,因为这是规范所说的,但要做到这一点,我必须返回一个流,我只想确保不要在周围保留太多的流太长时间。方法如下:

    [WebGet(BodyStyle = WebMessageBodyStyle.Bare,
        RequestFormat = WebMessageFormat.Xml,
        ResponseFormat = WebMessageFormat.Xml,
        UriTemplate = "someuri/{parameter}")]
    [OperationContract]
    public Stream FooBar(string parameter)
    {
        byte[] bytes = Encoding.UTF8.GetBytes("some string");
        return new MemoryStream(bytes);
    }
    

    有人知道什么时候释放这个资源吗?

    2 回复  |  直到 15 年前
        1
  •  1
  •   Henk Holterman    15 年前

    我会认为由GC,作为一个普通的对象:当所有对它的引用都消失了。

    这也不错,memoryStream确实实现了IDisposable,但并不真正需要它。

        2
  •  4
  •   marc_s    15 年前

    我做了一些研究,发现了一些关于这个主题的有趣文章:

    希望能有所帮助!