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

时间:2014-09-24 15:42:58

标签: c# .net chm sandcastle

我正在尝试将代码示例包含在我使用Sandcastles生成的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>

1 个答案:

答案 0 :(得分:11)

不确定。假设您创建一个外部代码文件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项目文件的,不一定是Visual Studio项目文件。如果您配置代码块组件(在SHFB - &gt;项目属性 - &gt;组件中),您可以指定不同的基本路径。