C# 这个代码有什么问题吗?这是给我损坏的内容 private static void UpdateFontSettings(WordprocessingDocument内容,WordprocessingDocument模板) { 如果(content!=null&&content.MainDocumentPart!=null&&content.MainDocumentPart.FontTablePart!=null&& 模板!=null&&template.MainDocumentPart!=null&&template.MainDocumentPart.FontTablePart!=null) { IEnumerable partsToDelete=来自content.main documentpart.FontTablePart.Parts中的idPartPair 选择idPartPair.OpenXmlPart; content.MainDocumentPart.FontTablePart.DeleteParts(partsToDelete); StreamReader StreamReader=null; StreamWriter StreamWriter=null; 尝试 { streamReader=新的streamReader(template.MainDocumentPart.FontTablePart.GetStream()); streamWriter=新的streamWriter(content.MainDocumentPart.FontTablePart.GetStream(FileMode.Create)); } 抓住 { if(streamReader!=null) { streamReader.Close(); } 投掷; } 使用(streamWriter) { streamWriter.Write(streamReader.ReadToEnd()); } if(streamReader!=null) { streamReader.Close(); } } }

C# 这个代码有什么问题吗?这是给我损坏的内容 private static void UpdateFontSettings(WordprocessingDocument内容,WordprocessingDocument模板) { 如果(content!=null&&content.MainDocumentPart!=null&&content.MainDocumentPart.FontTablePart!=null&& 模板!=null&&template.MainDocumentPart!=null&&template.MainDocumentPart.FontTablePart!=null) { IEnumerable partsToDelete=来自content.main documentpart.FontTablePart.Parts中的idPartPair 选择idPartPair.OpenXmlPart; content.MainDocumentPart.FontTablePart.DeleteParts(partsToDelete); StreamReader StreamReader=null; StreamWriter StreamWriter=null; 尝试 { streamReader=新的streamReader(template.MainDocumentPart.FontTablePart.GetStream()); streamWriter=新的streamWriter(content.MainDocumentPart.FontTablePart.GetStream(FileMode.Create)); } 抓住 { if(streamReader!=null) { streamReader.Close(); } 投掷; } 使用(streamWriter) { streamWriter.Write(streamReader.ReadToEnd()); } if(streamReader!=null) { streamReader.Close(); } } },c#,openxml,C#,Openxml,我建议您在创建StreamWriter时设置编码类型。我相信对于大多数系统,它默认为ANSI,尽管您可能需要UTF8或其他东西。哪里会发生异常?如果它给您提供损坏的内容,那么是的,有问题。你应该说哪里出了问题,为什么你认为那是错误的,什么时候你认为应该这样做。此外,你可能想在try中使用(streamWriter)部分..catch block因为你本可以关闭streamReaderwow,我不敢相信人们在这个问题上浪费了否决票。他/她是新来的,所以,给他们一些松懈,帮助他们学习如何使用网站,而

我建议您在创建
StreamWriter
时设置编码类型。我相信对于大多数系统,它默认为ANSI,尽管您可能需要UTF8或其他东西。

哪里会发生异常?如果它给您提供损坏的内容,那么是的,有问题。你应该说哪里出了问题,为什么你认为那是错误的,什么时候你认为应该这样做。此外,你可能想在try中使用(streamWriter)部分..catch block因为你本可以关闭streamReaderwow,我不敢相信人们在这个问题上浪费了否决票。他/她是新来的,所以,给他们一些松懈,帮助他们学习如何使用网站,而不是贬低他们的废话。
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();
            }
        }
    }