C# 内存流长度始终为零

C# 内存流长度始终为零,c#,memorystream,C#,Memorystream,运行以下代码时,我的内存流的长度始终为零documentStream.length 我试着将位置设置为零,这似乎解决了大多数问题,但我还是得到了零长度 public MemoryStream CreateDocumentTest() { MemoryStream documentStream = new MemoryStream(); WordprocessingDocument wordDocument = Wordproces

运行以下代码时,我的内存流的长度始终为零documentStream.length

我试着将位置设置为零,这似乎解决了大多数问题,但我还是得到了零长度

public MemoryStream CreateDocumentTest()
    {
        MemoryStream documentStream = new MemoryStream();

        WordprocessingDocument wordDocument =
            WordprocessingDocument.Create(documentStream, WordprocessingDocumentType.Document);

        MainDocumentPart mainPart = wordDocument.AddMainDocumentPart();

        mainPart.Document = new Document();
        Body body = mainPart.Document.AppendChild(new Body());
        Paragraph para = body.AppendChild(new Paragraph());
        Run run = para.AppendChild(new Run());
        run.AppendChild(new Text("Create text in body - CreateWordprocessingDocument"));

        wordDocument.MainDocumentPart.Document.Save();
        wordDocument.Save();
        documentStream.Seek(0, SeekOrigin.Begin);

        return documentStream;
    }

如何解决这个问题,我将CreateDocumentTest方法调整为void,并且我有一个MemoryStream的公共属性

我还用Using WordprocessingDocument wordDocument…(使用WordprocessingDocument…)包装了该建筑,并以设置我的公共属性结束了该方法

现在,我不确定它是在使用公共财产,还是在应用公共财产,或者两者兼而有之,但它现在起作用了。。。这是更新后的代码

        public void CreateDocumentTest()
        {

            DocumentStream = new MemoryStream();

            using (WordprocessingDocument wordDocument =
                WordprocessingDocument.Create(DocumentStream, WordprocessingDocumentType.Document))
            {
                MainDocumentPart mainPart = wordDocument.AddMainDocumentPart();

                mainPart.Document = new Document();
                Body body = mainPart.Document.AppendChild(new Body());
                Paragraph para = body.AppendChild(new Paragraph());
                Run run = para.AppendChild(new Run());
                run.AppendChild(new Text("Create text in body - CreateWordprocessingDocument"));

                wordDocument.MainDocumentPart.Document.Save();

                DocumentStream.Seek(0, SeekOrigin.Begin);
            }
        }

请以文本形式发布代码。图像应保留用于GUI错误以及无法用文本表示的错误。您需要在问题本身而不是基于标题的图像中共享代码。这是重复的。@AlexeiLevenkov我已经搜索并找到了答案,但它没有解决我的问题问题问题没有关联到流位置。。。我在我的问题中提到,但是,我已经设法让它工作,并将张贴一个答案现在好。。。我无法发布答案,因为此问题已被删除。。。。答案是,我将内存流更改为使用公共属性,并将函数更改为void,然后将WordprocessingDocument wordDocument包装在一个using中,现在它可以工作了