【发布时间】:2011-05-05 17:14:04
【问题描述】:
private static void UpdateFontSettings(WordprocessingDocument content, WordprocessingDocument template)
{
if (content != null && content.MainDocumentPart != null && content.MainDocumentPart.FontTablePart != null &&
template != null && template.MainDocumentPart != null && template.MainDocumentPart.FontTablePart != null)
{
IEnumerable<OpenXmlPart> partsToDelete = from idPartPair in content.MainDocumentPart.FontTablePart.Parts
select idPartPair.OpenXmlPart;
content.MainDocumentPart.FontTablePart.DeleteParts(partsToDelete);
StreamReader streamReader = null;
StreamWriter streamWriter = null;
try
{
streamReader = new StreamReader(template.MainDocumentPart.FontTablePart.GetStream());
streamWriter = new StreamWriter(content.MainDocumentPart.FontTablePart.GetStream(FileMode.Create));
}
catch
{
if (streamReader != null)
{
streamReader.Close();
}
throw;
}
using (streamWriter)
{
streamWriter.Write(streamReader.ReadToEnd());
}
if (streamReader != null)
{
streamReader.Close();
}
}
}
【问题讨论】:
-
异常发生在哪里?
-
如果它为您提供损坏的内容,那么是的有问题。你应该说出哪里出了问题,为什么你认为这是错误的,以及你认为应该在什么时候做。
-
另外你可能想要 try..catch 块中的 using(streamWriter) 部分,因为你可以关闭 streamReader
-
哇,我不敢相信人们在这件事上浪费了投票。他/她是 SO 的新手 - 让他们放松一下,帮助他们学习如何使用该网站,而不是贬低他们的废话。