2014-09-24 26 views
8

Ich versuche Codebeispiele in die CHM-Datei einzufügen, die ich mit Sandcastles erzeuge. Hier ist, was ich bisher:Codebeispiele in separate Datei für Sandcastles einfügen

/// <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> 

Dies ist sehr chaotisch und ich würde lieber nicht diesen Code habe in meiner CS-Datei. Gibt es eine Möglichkeit, diesen Beispielcode in eine separate CS-Datei zu stellen und in irgendeiner Weise im Kommentar darauf Bezug zu nehmen? Also stattdessen würde ich etwas in der Art haben:

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

Antwort

10

Sicher. Angenommen, Sie erstellen eine externe Codedatei, Example.cs. In dieser Datei platzieren Sie Ihr Beispiel, umgeben von einem Namen region.

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

im XML-Kommentar für das Element, das Sie für das Beispiel erstellen, Sie die Quelle des externen Codes Beispiel angeben:

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

die Sprache Angabe nicht erforderlich ist, wie die für C# ist der Standardwert, und wenn Sie die Region nicht angeben, enthält sie den gesamten Code in Ihrer Beispieldatei.

Beachten Sie auch, dass der Quelldateipfad relativ zu Ihrer SHFB-Projektdatei ist, nicht unbedingt die Visual Studio-Projektdatei. Wenn Sie die Codeblockkomponente konfigurieren (in SHFB -> Projekteigenschaften -> Komponenten), können Sie einen anderen Basispfad angeben.

+0

Vielen Dank, hat perfekt funktioniert. +1 für dich –