2013-06-18 2 views
2

Я пишу библиотеку классов C# с несколькими классами с функциями, которые выполняют примерно один и тот же материал. Мне нужно предоставить комментарии XML о аргументах функций в каждом классе, которые являются очень подробными, но в большинстве случаев одинаковыми. Есть ли способ повторного использования комментариев XML, поэтому мне не нужно повторять эти определения аргументов XML во всей моей сборке?C# XML Comment Reuse

Вот пример моих классов:

public class IsodoseControl : TestModule 
{ 
    /// <summary> 
    /// Verify a control on Isodose dialog 
    /// </summary> 
    /// <param name="args"> **<-- WHAT I DON'T WANT TO KEEP REPEATING** 
    /// Arguments: [Property, Condition, Expected Value, Tolerance] 
    ///   Properties: STATE, VALUE, LABEL 
    ///   Conditions: Exists, DoesNotExist, IsEnabled, IsDisabled, ... 
    ///   Expected Value (optional): blah blah 
    ///   Tolerance (optional): blah blah blah 
    /// </param> 
    public VerifResult VerifyIsodoseControl(string[] args) 
    { 
     ... 
    } 
} 

public class BeamControl : TestModule 
{ 
    /// <summary> 
    /// Verify a control on Beam dialog 
    /// </summary> 
    /// <param name="args"> **<-- WHAT I DON'T WANT TO KEEP REPEATING** 
    /// Arguments: [Property, Condition, Expected Value, Tolerance] 
    ///   Properties: STATE, VALUE, LABEL 
    ///   Conditions: Exists, DoesNotExist, IsEnabled, IsDisabled, ... 
    ///   Expected Value (optional): blah blah 
    ///   Tolerance (optional): blah blah blah 
    /// </param> 
    public VerifResult VerifyBeamControl(string[] args) 
    { 
     ... 
    } 
} 

Благодаря

ответ

0

Я не думаю, что есть что-нибудь в Visual Studio, которая поможет вам. Sandcastle имеет тег, inheritdoc, который позволит вам наследовать целые блоки комментариев XML, или вы можете также определить SandCastle token, содержащий текст пар, который позволил бы вам написать что-то вроде

/// <summary> 
/// Verify a control on Beam dialog 
/// </summary> 
/// <param name="args"><token>CommonParamInfo</token></param> 
/// (...) 

Sandcastle был разработан специально для документации по API и, возможно, не подходит для вашего случая.

1

«The < включают> тег позволяет ссылаться на комментарии в другом файле, описывающие типы и члены в исходном коде.»

Вы можете ссылаться на один и тот же файл из обоих классов с использованием < включают> теги.

/// <include file='comments.xml' path='MyDocs/MyMembers[@name="test"]/*' /> 
class OneClass {} 

/// <include file='comments.xml' path='MyDocs/MyMembers[@name="test"]/*' /> 
class DifferentClassWithTheSameFunctionality {} 

Эта ссылка некоторые примеры использования < включают>: http://msdn.microsoft.com/en-us/library/9h8dy30z.aspx