使用Open XML SDK,当我到达FeedData(msData)行时,下面给出"内存流不可扩展":
// Bytes in, bytes out
internal static byte[] UpdateDataStoreInMemoryStream(byte[] bytes,
XmlDocument xdocData)
{
using (var msDoc = new MemoryStream(bytes))
{
using (WordprocessingDocument wd = WordprocessingDocument.Open(msDoc, true))
{
MainDocumentPart mdp = wd.MainDocumentPart;
CustomXmlPart cxp = mdp.CustomXmlParts.SingleOrDefault<CustomXmlPart>();
using (MemoryStream msData = new MemoryStream())
{
xdocData.Save(msData);
msData.Position = 0;
// Replace content of ...\customXml\item1.xml.
cxp.FeedData(msData);
// "Memory stream is not expandable" if more data than was there initially.
}
}
return msDoc.ToArray();
}
}
Run Code Online (Sandbox Code Playgroud)
注意:问题不是msData,而是msDoc.
斯坦 - 托雷
Ste*_*dal 11
问题是(实际上从错误信息中很明显)
using (var msDoc = new MemoryStream(bytes)) ...
Run Code Online (Sandbox Code Playgroud)
创建一个固定大小的MemoryStream.所以解决方案是创建一个可扩展的MemoryStream:
MemoryStream msDoc = new MemoryStream();
msDoc.Write(bytes, 0, bytes.Length);
msDoc.Position = 0;
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2578 次 |
| 最近记录: |