XML文档问题中的泛型

GET*_*Tah 5 c# xml-documentation

我试图在我的类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>{
....
}
Run Code Online (Sandbox Code Playgroud)

我试图替换代码片段 /// <c> MyClass class = new MyClass{String}(); </c>

以前有人经历过这个吗?

谢谢你的帮助

Rob*_*ine 7

在xml文档中,您必须用花括号替换三角形括号:

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

 }

 public void DoSomething<T>()
 {

 }
Run Code Online (Sandbox Code Playgroud)

你最终被迫这样做的原因,因为如果你允许在元素标记之外使用三角括号,它真的不是很好的形成xml.

你试过的替换是正确的.

  • 或者&lt; 和&gt; (3认同)

Ass*_*ost 5

你没有关闭Remarks第4行中的元素,它可能会抱怨,只是在错误的行号.

此外,对于包含泛型的示例,它会List<string>以文本文字List后跟未闭合的stringXML元素.解决这个问题的最简单方法是List &amp;lt;string&amp;gr;在解析时生成List<string>而不是XML元素.

C#编译器团队添加了{}作为替换,所以你可以这样做List{string},它将被处理成<>的.