Resharper構文で強調表示するように、私のメソッドの1つをStringFormatMethod属性でフラグを立てたいとします。Resharperコードアノテーションを非侵襲的に独自のコードに追加する
JerBrains.Annotationsアセンブリを参照して属性を追加することで、これを実行できました。
しかし、これはこれを行うには非常に侵略的な方法であることがわかります。誰もがここでJetBrainsを使用するわけではなく、.dllをSubversionにコミットし、依存関係を追加し、特定のIDE固有のものをコードに埋め込む必要があります。
「外部注釈」機能については読んだが、できなかった。私はそれが間違っていたかどうか、あるいは単にソリューション内のプロジェクトでサポートされていないかどうかはわかりません(コンパイルされたアセンブリ参照ではありません)。
非侵襲的な方法でプロジェクト内のメソッドにコードアノテーションを追加する方法はありますか?
P.Sこの方法であって、システムを使用して
。
namespace MyLib
{
public static class Assert
{
public static void That(bool condition, string format, params object[] @params)
{
if (!condition)
throw new Exception(string.Format(format, @params));
}
}
}
そして、これが
Cの内容です:\プログラムファイル(x86の)\ジェットブレーンズ\ ReSharperのの\ V7.1 \ビン\ ExternalAnnotations \ MyLib.xml:
<assembley name="MyLib">
<member name="MyLib.Assert.That(System.Boolean,System.String,System.Object[])">
<attribute ctor="M:JetBrains.Annotations.StringFormatMethodAttribute.#ctor">
<argument>format</argument>
</attribute>
</member>
</assembley>
と一緒に行きましたが、私はそれが同様に侵襲的であることがわかりました。実際、私はそれが.dllを削除するよりも悪いと思う - 今私たちは、プロジェクトにコピー・ペースト(ugh)というコードをたくさん持っている。 次は、40kの.dllをSubversionにドロップする方が好きです。 –
@AmirAbiri私が最初にそれについて読んだとき、私はその考えに夢中ではなかった。しかし、私は間違いなく、効果的に設計時のアセンブリに依存することを好む。 – shambulator