标签: sandcastle

可以使用Doxygen,Sandcastle或其他文档生成器记录XML吗?

我目前正在使用Sandcastle,Doxygen和JavaDoc为我编写的代码生成文档.是否可以使用这些包记录XML模式?如果没有,是否有任何(最好是免费!)包可以做到这一点?我可以自己编写文档作为Doxygen或Sandcastle中的额外概念主题,但我宁愿为我做一个工具!

一个例子是(虽然我不是XML Schema的专家!):

/// <summary>Top Node</summary>
<xs:element name="TopNode">
    /// <summary>Child Node</summary>
    <xs:element name="ChildNode" type="xs:string"/>
</xs:element>
Run Code Online (Sandbox Code Playgroud)

xml sandcastle xsd doxygen documentation-generation

7
推荐指数
1
解决办法
3958
查看次数

如何复制.NET API文档?

如果类实现了接口中定义的方法,则可以选择是复制文档还是引用它<see cref="..." />.

public interface IPerformer
{
    /// <summary>
    /// Do something useful.
    /// </summary>
    /// <param name="something">Object to do something with</param>
    void Do(Something something);
}

public class Implementation : IPerformer
{
    /// <copy from="IPerformer" /> # that is what I want!
    public void Do(Something something)
    {
        // implementation ...
    }
}
Run Code Online (Sandbox Code Playgroud)

是否有可能让API文档工具(Sandcastle)自动复制文档(什么会使阅读API文档更加舒适)?@inheritDoc来自Java Doc的东西?

.net c# documentation sandcastle api-doc

7
推荐指数
1
解决办法
357
查看次数

缺少明确实现的接口的摘要标签?

基本上,我有以下代码:

public class MyDictionary<TKey, TValue> : IDictionary<TKey, TValue>
{
    /// <summary> My Summary </summary>
    void MyDictionary<TKey, TValue>.ICollection<KeyValuePair<TKey, TValue>> { ... }
}
Run Code Online (Sandbox Code Playgroud)

MyProject.XML

<member name="M:MyProject.MyDictionary`2.System#Collection#Generic#ICollection{System#Collections#Generic#KeyValuePair{TKey@TValue}}#Clear">
 <summary>
  My Summary
 </summary>
</member>
Run Code Online (Sandbox Code Playgroud)

Sandcastle的内置输出:

警告:ShowMissingComponent:缺少M:MyProject.MyDictionary`2.System#Collections的文档#Generic#ICollection {T} #Clear

所以,不知道该怎么做.我也有我的沙堡构建选项包括明确的实现,这就是为什么它创建的文档中为他们的网页,但它似乎无法弄清楚,我没有创建此方法XML注释.奇怪的是,该void MyDictionary<TKey, TValue>.IDictionary<TKey, TValue>.Add(TKek key, TValue value)方法被识别为具有XML注释.实际上,所有隐式实现的ICollection>方法都给Sandcastle一个问题.有帮助吗?

.net c# sandcastle xml-documentation

7
推荐指数
2
解决办法
2351
查看次数

代码合约+ Sandcastle - 任何自定义例外部分的方法?

  • 我正在使用Code Contracts ver:1.4.40602.0
  • 我复制了必要的内容和转换文件
  • Sandcastle根据我的合同要求输出例外情况

示例代码:

public class MyClass
{
    public MyClass(Object obj)
    {
        Contract.Requires<ArgumentNullException>(obj != null);
    }
}
Run Code Online (Sandbox Code Playgroud)

结果输出(在我的文档中):

| Exception                       | Condition                       |
|---------------------------------|---------------------------------|
| System.ArgumentNullException    | obj == null                     |
Run Code Online (Sandbox Code Playgroud)

这并不是那么糟糕,但我想知道是否有办法自定义条件的文本?我试图添加用户消息Contract.Requires<ArgumentNullException>(obj != null, "obj is null.");,但这并没有解决任何问题.

在过去,我必须为异常编写自己的xml文档部分.我是否必须再次这样做以获得我需要的东西?


免责声明:由于Code Contracts(目前)是一个DevLabs项目,这可能会改变,但我想知道它现在是否已经可用......如果没有,我一定会建议它.

c# documentation sandcastle xml-documentation code-contracts

7
推荐指数
1
解决办法
294
查看次数

如何忽略公共类或方法的帮助文件构建器生成的文档?

如何在SandCastle帮助文件生成器生成的文档中省略某些公共类或方法?

示例:我有以下具有两个公共方法的公共类:

/// <summary>
/// A simple test class.
/// </summary>
public class MyClass
{
    /// <summary>
    /// Method1s this instance.
    /// </summary>
    public void Method1()
    {
        // Do some operations here.
    }

    /// <summary>
    /// Method2s this instance.
    /// </summary>
    public void Method2()
    {
        // Do some operations here.
    }
}
Run Code Online (Sandbox Code Playgroud)

当我使用SandCastle帮助文件生成器从此代码生成帮助文件时,我想忽略Method2.

c# sandcastle

7
推荐指数
2
解决办法
2946
查看次数

一个类的C#Documentation <example> <code> ... </ code> </ example>

我有一个类,我想创建一个关于如何使用的简单示例.但是,当我在类声明中使用标记时,该示例不会出现在Sandcastle输出中.它适用于对象的成员,但不适用于类本身.沙堡可以处理吗?

我想做的一个例子是.

MSDN TcpClient文档

这有一个关于如何使用该类的示例.我怎样才能在课堂上加入这样的东西?

我想这样做:

/// <summary> My example class </summary>
/// <example>
///   <code>
///      // Example code on how to use the class
///   </code>
/// </example>
public class MyClass
{
    public string MyString {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

.net c# documentation sandcastle

7
推荐指数
1
解决办法
1847
查看次数

如何引用不同方法的参数?

是否可以从与您编写摘要的方法不同的方法引用参数,如果是,则语法是什么.

我知道<paramref name="..."/>但我不知道如何从不同的方法中引用.

简单幽默的例子,以防我不清楚:

/// <summary>
/// Does magical Foo things!
/// </summary>
/// <param name="magic">Magic Toggle!</param>
public void Foo(bool magic)
{
    //...
}

/// <summary>
/// Does Bar things. More down to earth, no <paramref name="Foo(bool).magic"/> involved!
/// </summary>
public void Bar()
{
    //...
}
Run Code Online (Sandbox Code Playgroud)

(显然以上不是一个很好的用例,它只是出于插图目的.)

c# sandcastle

7
推荐指数
1
解决办法
178
查看次数

如何在C#XML注释中链接/分组重载?

在XML文档中对C#的注释中,有没有办法将两个或多个函数标记为彼此重载,以便它们自动引用?理想情况下,它们也会以某种方式分组在沙堡生成的文档中.

目的:通常,我想链接到这组功能,例如在效用函数列表中,只提一个重载,并使其他功能很容易从那里发现.

目前我正在添加链接,但这很乏味.

c# sandcastle overloading xml-comments

6
推荐指数
1
解决办法
2182
查看次数

Sandcastle 的印刷文档

我们使用 Sandcastle 来提供概念文档,并希望以非 CHM 或 HTML 形式(即打印形式)向客户提供文档。它可以是 Word 或 PDF,可以简单地附加到电子邮件中。用例通常涉及想要发送主题的人。

我们能做的最好的事情就是在查看 HTML 时从 CHM 查看器打印或从 Chrome 打印为 PDF。它们存在一些问题,因为它们会删除锚元素点击、将图像变成黑白等。

Codeplex 上的 SHFB 讨论中有一个帖子指出没有任何已知的替代方案 - http://shfb.codeplex.com/discussions/260489。我在这里重新发布问题,希望获得更多的意见和可见度。

sandcastle shfb

6
推荐指数
1
解决办法
1636
查看次数

使用 cref 的继承文档特定异常

如何使用<inheritdoc/>从另一个方法继承特定异常。是否可以做这样的事情:

/// <summary>
/// Summary
/// </summary>
/// <inheritdoc cref="Method2(int)" select="exception[@cref='CustomException']" />
public int Method1()
{
    return Method2(1);
}

/// <summary>
/// Summary...
/// </summary>
/// <exception cref="ArgumentException">
/// ArgumentException...
/// </exception>
/// <exception cref="CustomException">
/// CustomException...
/// </exception>
public int Method2(int count)
{
    // do something
}
Run Code Online (Sandbox Code Playgroud)

当我构建文档并打开它时,Method1 也不例外。目前,我的解决方法是添加id="CustomException"到 Method2 并使用<inheritdoc cref="Method2(int)" select="exception[@id='CustomException']" />

c# sandcastle

6
推荐指数
1
解决办法
607
查看次数