我试图在我的类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 :(得分:7)
在xml文档中,您必须用大括号替换三角形括号:
/// <summary>
/// Calls <see cref="DoSomething{T}"/>.
/// </summary>
public void CallsDoSomething()
{
}
public void DoSomething<T>()
{
}
你最终被迫这样做的原因,因为如果你允许在元素标记之外使用三角括号,它真的不是很好的形式。
你试过的替换是正确的。
答案 1 :(得分:5)
您没有关闭第4行中的Remarks
元素,可能会抱怨,只是在错误的行号。
此外,对于包含泛型的示例,它会选择List<string>
作为文本文本List
,后跟未关闭的string
XML元素。最简单的方法是执行List &lt;string&gr;
,在解析时生成List<string>
而不是XML元素。
C#编译器团队添加了{
和}
作为替换,因此您只需执行List{string}
即可将其处理为&lt;&gt;&#;
答案 2 :(得分:3)
有几件事:
<
和>
替换<
和>
个字符。<remarks>
</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<string<();</c></para>
/// </note>
/// </remarks>
public class MyClass<T>
{
....
}
答案 3 :(得分:2)
您的<remarks>
永远不会关闭。
还需要像您已尝试过的那样更换角度支撑。