2012-02-23 46 views
5

我想在我的类XML文档中包含代码片段,但编译器抱怨xml元素没有关闭! 这里就是我想实现XML文档中的泛型问题

/// <summary> 
/// Method documentation here... 
/// </summary> 
/// <remarks> 
/// <para> 
/// This class should be used as follow: 
/// <br/> 
/// ************** PROBLEM IN NEXT LINE ******************** 
/// <c> MyClass class = new MyClass<String>(); </c> 
/// </para> 
/// </remarks> 
public class MyClass<T>{ 
.... 
} 

我试图通过/// <c> MyClass class = new MyClass{String}(); </c>

任何一个已经经历过这个更换的代码片段?

感谢您的帮助

+0

这是问及http://stackoverflow.com/questions/532166/c-how-to-reference-generic-回答class-and-methods-in-xml-documentation – kaj 2012-02-23 12:21:30

+0

@KAJ由于OP更新并更正了复制/粘贴错误,我同意并投票结束重复。 – Filburt 2012-02-23 12:30:30

回答

7

在XML文档中,你有花括号来代替三角括号:

/// <summary> 
/// Calls <see cref="DoSomething{T}"/>. 
/// </summary> 
public void CallsDoSomething() 
{ 

} 

public void DoSomething<T>() 
{ 

} 

你最终被迫之所以这样做,是因为它真正的ISN”如果你允许在元素标记之外的三角形括号,则很好地形成了xml。

您尝试的替换是正确的。

+3

或<和> – demoncodemonkey 2012-02-23 12:20:52

+1

是的 - 你也可以这样做 - 虽然它使得代码文档本身的可读性降低了恕我直言。 – 2012-02-23 12:23:23

2

您的<remarks>从未关闭。

更换已经尝试过的角撑圈也是需要的。

+0

对不起,这是一个复制/粘贴问题。刚刚添加结束标记的评论。 – GETah 2012-02-23 12:24:13

+0

在这种情况下,KAJ是正确的,使用大括号可以解决您的问题。 – Filburt 2012-02-23 12:29:29

5

您没有在第4行关闭Remarks元素,它可能是抱怨,只是在错误的行号。

另外,通过包含泛型的示例,它将拾取List<string>作为文本字面量List后跟未封闭的string XML元素。最简单的解决方法是执行List &amp;lt;string&amp;gr;,解析时产生List<string>而不是XML元素。

C#编译器团队的补充{}作为替代的是,这样你就可以做List{string},它会被加工成<>的。

+0

对不起,这是一个复制/粘贴问题。刚刚添加结束标记的评论。 – GETah 2012-02-23 12:23:57

3

几件事情:

  1. &lt;&gt;替换它们让您远离<>字符。
  2. </remarks>
  3. 闭上你的XML <remarks>节当你决定引用一个通用的标签(即<see ... /><seealso ... />等),那么你会做这样类似如下:<see cref="SomeMethod{T}(T value)" />。永远不要在参考中指定具体的类型(也就是不要做<see cref="SomeMethod{String}(String value)" />)。

这是你的XML注释的一个固定的版本:

/// <summary> 
/// Method documentation here... 
/// </summary> 
/// <remarks> 
/// <note type="implementsinfo"> 
///  <para>This class should be used as follow:</para> 
///  <para><c>MyClass class = new MyClass&lt;string&lt;();</c></para> 
/// </note> 
/// </remarks> 
public class MyClass<T> 
{ 
    .... 
} 
+0

感谢您的快速响应。我会用{}代替<和< – GETah 2012-02-23 12:34:31