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