在Sandcastle的单独文件中包含代码示例

本文关键字:包含 代码 文件 Sandcastle 单独 | 更新日期: 2023-09-27 18:24:18

我正在尝试在使用Sandcastle生成的CHM文件中包含代码示例。以下是我目前所拥有的:

/// <summary>
/// Lorem ipsum.
/// </summary>
/// <example>
/// <code>
/// public int Test
/// {
/// private int test { get; set }
/// private int test2 { get; set; }
/// public int findE()
/// {
/// if(test == test2){
/// return Console.WriteLine("Variables are Equal")
/// }
/// else{
/// return Console.WriteLine("Variables are not equal")
/// }
/// }
/// }
/// </code>
/// </example>

这是非常混乱的,我宁愿在我的.cs文件中没有这个代码。有没有办法把这个示例代码放在一个单独的.cs文件中,并以某种方式在注释中引用它?所以我会有这样的东西:

/// <summary>
/// Lorem ipsum.
/// </summary>
/// <reference src="mycode.cs">
/// </example>

在Sandcastle的单独文件中包含代码示例

当然。假设您创建了一个外部代码文件Example.cs。在该文件中,您放置了一个名为region的示例。

#region example1
Console.WriteLine("Hello, World!");
#endregion

在为其创建示例的元素的XML注释中,指定外部代码示例的源:

/// <summary>blah blah my class</summary>
/// <example><code source="Example.cs" region="example1" lang="C#" 
/// title="Some Title to Display" /></example>
public class Hurr
{
 // ...

C#不需要指定语言,因为这是默认设置,如果不指定区域,它将包括示例文件中的所有代码。

还要注意,源文件路径是相对于SHFB项目文件的,而不一定是VisualStudio项目文件。如果配置代码块组件(在SHFB->项目属性->组件中),则可以指定不同的基本路径。