5

クラスの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>

誰もがこれを以前に経験したことがありますか?

ご協力いただきありがとうございます

4

4 に答える 4

7

xmlドキュメントでは、三角形の中括弧を中括弧に置き換える必要があります。

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

 }

 public void DoSomething<T>()
 {

 }

これを強制される理由は、要素のマークアップの外側で三角形の中括弧を許可すると、実際には整形式のxmlではないためです。

試した交換は正しいです。

于 2012-02-23T12:18:03.453 に答える
5

4行目の要素を閉じていませんRemarks。間違った行番号で、それについて不平を言っている可能性があります。

また、ジェネリックスを含む例ではList<string>、テキストリテラルとしてList取得され、その後に閉じられていないstringXML要素が続きます。これを回避する最も簡単な方法はList &amp;lt;string&amp;gr;、解析時にList<string>XML要素でなくても生成されることを行うことです。

C#コンパイラチームがその代わりに追加{}たので、あなたはそれを行うことができList{string}、それは<>に処理されます。

于 2012-02-23T12:19:23.837 に答える
3

いくつかのこと:

  1. とを置き換えて、<との文字をエスケープします。>&lt;&gt;
  2. XML<remarks>セクションを</remarks>
  3. <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>
{
    ....
}
于 2012-02-23T12:28:08.260 に答える
2

あなた<remarks>は決して閉じられません。

すでに試したように角括弧を交換することも必要です。

于 2012-02-23T12:18:43.347 に答える