【问题标题】:How to add regionText to CodeRegionMode.End using CodeDom如何使用 CodeDom 将 regionText 添加到 CodeRegionMode.End
【发布时间】:2026-01-05 21:20:06
【问题描述】:

我正在使用 CodeRegionDirective 在我的代码周围添加开始和结束区域,但是当我使用以下代码行时 CodeRegionDirective codeRegionDirective2 = new CodeRegionDirective(CodeRegionMode.End, "我的函数结束"); 然后,即使我指定了 regionText,它也会添加像“#endregion”这样的结束区域代码。我希望我的结束区域看起来像“#endregion End of My Function”。所以请告诉我如何实现它。

【问题讨论】:

    标签: c# codedom


    【解决方案1】:

    CodeDom 不会为CodeRegionMode.End 编写RegionText。以下是负责此操作的 GenerateCodeRegionDirective 方法的源代码:

    private void GenerateCodeRegionDirective(CodeRegionDirective regionDirective)
    {
      if (regionDirective.RegionMode == CodeRegionMode.Start)
      {
        this.Output.Write("#region ");
        this.Output.WriteLine(regionDirective.RegionText);
      }
      else
      {
        if (regionDirective.RegionMode != CodeRegionMode.End)
          return;
        this.Output.WriteLine("#endregion");
      }
    }
    

    从这里你可以看到CodeRegionMode.End 的情况下没有this.Output.WriteLine(regionDirective.RegionText)

    【讨论】: