Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 代理方法应该使用什么文档标记_C#_Xml Documentation - Fatal编程技术网

C# 代理方法应该使用什么文档标记

C# 代理方法应该使用什么文档标记,c#,xml-documentation,C#,Xml Documentation,假设我有这样一个代码: class A { /// <summary> /// Some important text here /// </summary> /// <param name="a"></param> /// <param name="b"></param> /// <param name="c"></param> public

假设我有这样一个代码:

class A
{
    /// <summary>
    /// Some important text here
    /// </summary>
    /// <param name="a"></param>
    /// <param name="b"></param>
    /// <param name="c"></param>
    public void Method1(int a, int b, int c)
    {
    }
}
class B
{
    private A a = new A();

    // I'd like to show A.Method1 documentation here
    public void Method1(int a, int b, int c)
    {
        this.a.Method1(a, b, c);
    }
}
/// <SomeMagicTag ref="A.Method1" />
public void Method1(int a, int b, int c)
A类
{
/// 
///这里有一些重要的文本
/// 
/// 
/// 
/// 
公共无效方法1(内部a、内部b、内部c)
{
}
}
B类
{
私有A=新A();
//我想在这里展示A.Method1文档
公共无效方法1(内部a、内部b、内部c)
{
该方法1(a,b,c);
}
}
是否有任何标准的文档标签(例如,标准到足以在VisualStudio中显示适当的文档)可以实现这一点

我想这样做:

class A
{
    /// <summary>
    /// Some important text here
    /// </summary>
    /// <param name="a"></param>
    /// <param name="b"></param>
    /// <param name="c"></param>
    public void Method1(int a, int b, int c)
    {
    }
}
class B
{
    private A a = new A();

    // I'd like to show A.Method1 documentation here
    public void Method1(int a, int b, int c)
    {
        this.a.Method1(a, b, c);
    }
}
/// <SomeMagicTag ref="A.Method1" />
public void Method1(int a, int b, int c)
//
公共无效方法1(内部a、内部b、内部c)

并让visual studio向我展示
A.Method1
的文档当我使用
B.Method1

时,您可以使用cref属性来引用类A的方法

XML文档标记中的cref属性表示“代码引用”。它指定标记的内部文本是代码元素,例如类型、方法或属性

请查看Microsoft文档:

我差不多已经弄明白了。遗憾的是,这种方法不适用于visual studio intellisense(至少不适用于VS2013),但它适用于sandcastle帮助文件生成器

下面是我的问题中编辑的示例,演示如何执行此操作:

/// <inheritdoc cref="A.Method1" />
public void Method1(int a, int b, int c)
//
公共无效方法1(内部a、内部b、内部c)

它可以通过使用
select
属性进行进一步定制,该属性可以包含xpath查询,以便只从引用的注释中继承选定的标记。

我想我可以这样做,但它似乎不能完全按照我希望的方式工作。我想展示与原始方法完全相同的代理方法文档,这只是插入了某种链接。为什么要这样做?这是两个不同的类,在开发过程中,可能会导致完全不同的行为/语法/结果。如果它们没有耦合在一起,那么你就不应该耦合它们的文档。@Mrchief:如果它们不同,那么我现在就重写文档,正如示例中所示。因此,如果保持它们的同步不是一个目标,为什么不只是复制/粘贴呢?或者你有更多这样的案例,而不仅仅是一个简单的方法吗?@Chief:我编辑了这个问题,以更好地解释我试图实现的目标。我明白了,但我试图理解你创建代理类背后的理由。我是说为什么不继承遗产呢?那你就没有更多的路可走了。然而,有了这种安排,再加上您希望Intellisense显示它(而不是生成一些文档),您最好的选择是有这样的东西:
/////Proxies//