gpt4 book ai didi

c# - 为什么 C# 编译器在 XML 文档中包含非公共(public)成员?

转载 作者:行者123 更新时间:2023-12-03 19:34:49 25 4
gpt4 key购买 nike

当您使用csc.exe 编译源代码时,您可以使用/doc用于将源文件中的 xml 文档注释保存到外部 xml 文件的选项。

我想知道的是为什么编译器会在该文件中包含我的代码的非公共(public)成员的 xml 注释。因为我已经在源代码中有了文档,所以在处理该项目时我不需要 xml 文档文件中的任何内容。

而且如果我将dll用于另一个项目,我无论如何都不能使用非公共(public)成员。那么为什么它包含所有私有(private)和内部成员的文档呢?

我也想知道是否有办法防止这种情况发生。

最佳答案

我可以理解内部成员被记录在案 - 这样可以更轻松地浏览您在同一个程序集中编写的代码的文档。 (当然,总是有 InternalsVisibleTo。)对于私有(private)成员,我认为这有点难以证明。

如果您使用 SandcaSTLe 生成离线文档,您可以要求它生成一个新的 XML 文件,其中仅包含公共(public)成员 - 并且仅包含摘要部分。我不记得它在 SHFB 中是什么样子,但在我们的 Noda Time 项目文件中,我相信这是相关部分:

  <ComponentConfig id="IntelliSense Component" enabled="True">
<component id="IntelliSense Component"
type="SandcastleBuilder.Components.IntelliSenseComponent"
assembly="{@SHFBFolder}SandcastleBuilder.Components.dll">
<output includeNamespaces="false" namespacesFile="Namespaces"
folder="{@OutputFolder}\..\PublicApi" />
</component>
</ComponentConfig>

关于c# - 为什么 C# 编译器在 XML 文档中包含非公共(public)成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14786930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com