2

アプリの一部は、CodeDom を使用して生成されたコードを使用しています。このコードは Xml コメントを必要としないため、

#pragma warning disable 1591 

それらの生成されたファイルに。これは CodeDom で可能ですか? そうでない場合、これを達成する方法について他の提案はありますか?

4

2 に答える 2

4
provider.GenerateCodeFromCompileUnit(
    new CodeSnippetCompileUnit("#pragma warning disable 1591"),
    sourceWriter, options);
provider.GenerateCodeFromCompileUnit(targetUnit, sourceWriter, options);
provider.GenerateCodeFromCompileUnit(
    new CodeSnippetCompileUnit("#pragma warning restore 1591"),
    sourceWriter, options);

他の言語に(まったく)うまく翻訳されません。YMMV-イアン

于 2010-01-12T01:52:33.423 に答える
0

すべてのリフレクター コードを調べると、「正しい」方法として何も表示されません。ただし、生成後の処理を行う意思がある場合は、方法があるかもしれません。RegionDirective を使用して、RegionText 値に特別なトークンを配置します。次に、コードが生成されたら、戻って文字列の置換を行います。

一致するコード領域を強制するコードがコード内に見当たらなかったので、最後に単一の開始コード領域を配置して、警告を再度有効にすることができます。

例えば。トークンは「#PRAGMA1591」および「#ENABLEWARNINGS」の可能性があります。したがって、コードが生成された後は、

#region #PRAGMA1591

...

#region #WARNINGRESTORE
#endregion

次に、文字列置換を実行してこれを生成します。

#region Disable Warning 1591
#pragma warning disable 1591

...

#pragma warning restore
#endregion

文字列は次のように展開されます。

  • PRAGMA1591 -> XML ドキュメントの欠如を無視 \n #pragma warning

    1591を無効にする
  • リージョン #WARNINGSRESTORE -> #pragma warning restore

于 2009-04-14T17:59:48.147 に答える