コードアノテーション属性
JetBrains.Annotations フレームワークは、以下で説明する多くの属性を提供します。
これらの属性をコードで使用するには、 ソースコードのアノテーション セクションの説明に従って JetBrains.Annotations を参照する必要があります。
アノテーション属性
CanBeNullAttribute
マークされた要素の値が時々 null になる可能性があることを示します。そのため、使用前に null を確認する必要があります。
サンプル
詳細については、 価値と無効性の分析 を参照してください。
NotNullAttribute
マークされた要素の値が決して null でないことを示します。
サンプル
詳細については、 価値と無効性の分析 を参照してください。
ItemNotNullAttribute
IEnumerable から派生した型のシンボルだけでなく、 Task および Lazy クラスのシンボルにも適用して、コレクション項目、 Task.Result プロパティ、または Lazy.Value プロパティの値が決して null にならないことを示すことができます。
サンプル
詳細については、 価値と無効性の分析 を参照してください。
ItemCanBeNullAttribute
IEnumerable から派生した型のシンボルだけでなく、 Task および Lazy クラスのシンボルにも適用して、コレクション項目、 Task.Result プロパティ、または Lazy.Value プロパティの値が null になれることを示すことができます。
サンプル
詳細については、 価値と無効性の分析 を参照してください。
StringFormatMethodAttribute
マークされたメソッドが形式パターンと (オプションの) 引数によって文字列を構築することを示します。 フォーマット文字列を受け入れるパラメーターはコンストラクターで指定する必要があります。 フォーマット文字列は System.String.Format(System.IFormatProvider,System.String,System.Object[])(英語)-like 形式である必要があります。
サンプル
関連事項
Members
#ctor(System.String)アノテーション付きメソッドのどのパラメーターをフォーマット文字列として扱うかを指定します。
詳細については、 カスタム文字列フォーマットメソッドの場合 を参照してください。
StructuredMessageTemplateAttribute
マークされたパラメーターがメッセージテンプレートであり、プレースホルダが次の引数に出現順に置き換えられることを示します。
サンプル
関連事項
詳細については、 文字列リテラルのコード分析とヘルパー を参照してください。
ValueProviderAttribute
このアノテーションを使用して、アノテーション付きプロパティ / フィールド / パラメーターの値を持つ静的フィールドまたは静的フィールドを含む型を指定します。 指定された型は補完候補を改善するために使用されます。
サンプル
ValueRangeAttribute
整数値が指定された区間に収まることを示します。 複数の交差しない間隔を指定することができます。 区間境界の値は区間に含まれます。
サンプル
NonNegativeValueAttribute
積分値がゼロを下回ることがないことを示します。
サンプル
詳細については、 整数値の分析 (積分演算) を参照してください。
InvokerParameterNameAttribute
関数の引数が文字列リテラルであり、呼び出し側関数のパラメーターの 1 つと一致する必要があることを示します。 このアノテーションは、 System.ArgumentNullException(英語) コンストラクターの string paramName パラメーターなどのパラメーターに使用されます。
サンプル
NotifyPropertyChangedInvocatorAttribute
System.ComponentModel.INotifyPropertyChanged インターフェースを実装する型にメソッドが含まれており、このメソッドは一部のプロパティ値が変更されたことを通知するために使用されることを示します。
メソッドは静的でなく、サポートされているシグネチャーの 1 つに準拠する必要があります。
NotifyChanged(string)NotifyChanged(params string[])NotifyChanged{T}(Expression{Func{T}})NotifyChanged{T,U}(Expression{Func{T,U}})SetProperty{T}(ref T, T, string)
サンプル
生成された通知の例:
NotifyChanged("Property")NotifyChanged(() => Property)NotifyChanged((VM x) => x.Property)SetProperty(ref myField, value, "Property")
詳細については、 INotifyPropertyChanged のサポート を参照してください。
ContractAnnotationAttribute
メソッドの入力と出力間の依存関係を説明します。
構文
関数定義テーブル構文:
FDT ::= FDTRow [;FDTRow]*
FDTRow ::= Input => Output | Output <= Input
Input ::= ParameterName: Value [, Input]*
Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value}
Value ::= true | false | null | notnull | canbenull
メソッドが入力パラメーターを 1 つ持つ場合は、その名前を省略できます。
メソッドの出力に halt (または同じ void/nothing )を使用すると、そのメソッドは通常通りにリターンしない(例外をスローまたはプロセスを終了する)ことを意味します。 canbenull の値は出力パラメーターにのみ適用されます。
各 FDT 行ごとに複数の [ContractAnnotation] を使用することも、セミコロンで区切った行を 1 つの属性として使用することもできます。 行の順序は重要ではなく、すべての行が対応性について確認され、解析エンジンが追跡する各プログラム状態に適用されます。
サンプル例
- [ContractAnnotation("=> halt")] public void TerminationMethod()
- [ContractAnnotation("null <= param:null")] // reverse condition syntax public string GetName(string surname)
- [ContractAnnotation("s:null => true")] public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty()
- // A method that returns null if the parameter is null, // and not null if the parameter is not null [ContractAnnotation("null => null; notnull => notnull")] public object Transform(object data)
- [ContractAnnotation("=> true, result: notnull; => false, result: null")] public bool TryParse(string s, out Person result)
詳細については、 契約アノテーション を参照してください。
LocalizationRequiredAttribute
マークされた要素をローカライズする必要があるかどうかを示します。
サンプル
詳細については、 ローカライゼーションインスペクションとクイックフィックス を参照してください。
CannotApplyEqualityOperatorAttribute
マークされた型 (またはその派生型) の値は、 == 演算子または != 演算子を使用して比較できないため、代わりに Equals() を使用する必要があることを示します。 ただし、 null との比較に == または != を使用することは常に許可されます。
サンプル
詳細については、 コードインスペクション:「CannotApplyEqualityOperatorAttribute」が付与された型の値は「Equals()」を使用して比較する必要があります。 を参照してください。
DefaultEqualityUsageAttribute
メソッドまたは型がアノテーション付き要素の等価メンバーを使用することを示します。
この属性をメソッドのジェネリックパラメーターに適用した場合、メソッド呼び出し時にカスタム等値比較演算子が渡されない限り、注釈付き型の等値が使用されることを示します。 属性は、メソッドのパラメーターや戻り値の型に直接適用して、その等値の使用を指定することもできます。 このアノテーションを型のジェネリックパラメーターに適用すると、その型内の任意の場所で型の等値使用が発生する可能性があることを示します。そのため、この型のインスタンス化は等値使用として扱われます。ただし、コンストラクターにカスタムの等値比較演算子が渡された場合は除きます。
サンプル
詳細については、 コードインスペクション: デフォルト構造体等値の使用 を参照してください。
BaseTypeRequiredAttribute
ターゲット属性に適用される場合、ターゲット属性でマークされた型に対して、特定の型を実装または継承するための要件を指定します。
サンプル
UsedImplicitlyAttribute
マークされたシンボルが暗黙的に(リフレクションや外部ライブラリなど経由で)使用されることを示します。そのため、このシンボルは使用チェックインスペクションでは無視されます。
ImplicitUseKindFlags および ImplicitUseTargetFlags を使用して、この属性の適用方法を構成できます。
サンプル
MeansImplicitUseAttribute
属性、型パラメーター、 System.Type(英語) から割り当て可能な型のパラメーターに適用できます。 属性に適用すると、装飾された属性は UsedImplicitlyAttribute と同様に動作します。 型パラメーターまたは型 System.Type(英語) のパラメーターに適用される場合、対応する型が暗黙的に使用されることを示します。
PublicAPIAttribute
この属性は、削除すべきでない、未使用として報告すべきではない、公開されている API をマークすることを目的としています。
InstantHandleAttribute
呼び出されたメソッドがスタック上にあるときにパラメーターが完全に処理されたかどうかをコード分析エンジンに伝えます。 パラメーターがデリゲートの場合、デリゲートはメソッドの実行中にのみ呼び出すことができることを示します (デリゲートは 0 回または複数回呼び出すことができますが、フィールドに格納されず、後で、含まれているメソッドが実行スタック上に存在しなくなったときに呼び出すことができます))。 パラメーターが列挙可能な場合、メソッドの実行中にパラメーターが列挙されることを示します。 RequireAwait が true の場合、属性はメソッド呼び出しが await 式にある場合にのみ有効になります。
Members
RequireAwaitこの属性を有効にするには、
await式でメソッド呼び出しを使用する必要があります。asyncメソッドのデリゲート / 列挙可能パラメーターに使用できます。
PureAttribute
メソッドが監視可能な状態変更を行わないことを示します。 System.Diagnostics.Contracts.PureAttribute(英語) と同じ。
サンプル
MustUseReturnValueAttribute
メソッド呼び出しの戻り値を使用する必要があることを示します。
この属性で装飾されたメソッドは(pure メソッドとは異なり)状態を変更する場合がありますが、戻り値を使用しなければ意味がありません。
PureAttribute と同様に、この属性は戻り値が使用されていない場合のメソッド使用を検出するのに役立ちます。 警告を表示する際に使用するメッセージを任意で指定できます。例えば。
.
MustDisposeResourceAttribute
リソースの破棄は使用サイトで処理する必要があることを示しており、リソース所有権が呼び出し元に移譲されることを意味します。 このアノテーションは、破棄可能型またはそのコンストラクターに個別にアノテーションを付与することで、新しいインスタンスが作成されるすべてのコンテキストでリソース破棄のための IDE コード解析を有効化できます。 ファクトリメソッドや out パラメーターにもアノテーションを付与することで、破棄可能型の戻り値の処理が必要であることを示すことができます。
この属性による入力パラメーターのアノテーションは意味がありません。
コンストラクターは型にこの属性が付与されている場合はそれを継承しますが、委譲先となる基底コンストラクターからは継承しません(存在する場合)。
リソースの破棄は using (resource) ステートメント、 using var 宣言、明示的な Dispose() 呼び出し、または HandlesResourceDisposalAttribute 属性でアノテーションされたパラメーターへの引数としてリソースを渡すことで行うことが想定されます。
Members
Valuefalseに設定すると、リソースの破棄は必須ではありません。 明示的な[MustDisposeResource(false)]アノテーションの主な使用例は、継承のアノテーションを緩和することです。
このアノテーションは、 dispose analysis および対応する インレイヒント をトリガーします。
HandlesResourceDisposalAttribute
メソッドまたはクラスインスタンスがリソースの所有権を取得し、使用後にそれを破棄することを示します。
out パラメーターへのこの属性のアノテーションは意味がありません。
インスタンスメソッドがこの属性でアノテーションされている場合は、該当リソースインスタンスの破棄を処理することを意味します。
フィールドやプロパティがこの属性でアノテーションされている場合は、その型がリソースを所有し(例えば自身の IDisposable 実装で)適切にリソース破棄を処理することを意味します。
RequireStaticDelegateAttribute
このアノテーションは、パフォーマンスクリティカルな API 向けにデリゲートの非割り当てな使用パターンを徹底させることができます。 このアノテーションがデリゲート型のパラメーターに適用された場合、IDE はこのパラメーターの入力引数をチェックします。* ラムダ式や匿名メソッドが引数として渡された場合、IDE は渡されたクロージャがローカル変数をキャプチャしていないこと、およびコンパイラーがデリゲートインスタンスをキャッシングしてヒープ割り当てを回避できるかを検証します。 それ以外の場合は、警告が出されます。 * メソッド名やローカル関数名が引数として渡された場合、これは常にデリゲートインスタンスのヒープ割り当てを引き起こすため、IDE は警告を表示します。
C# 9.0+ コードでは、IDE は、言語 / コンパイラーによって提供される同様の分析を利用するために、匿名関数に static 修飾子でアノテーションを付けることも提案します。
詳細については、 コードインスペクション:ラムダ式/匿名メソッドは含まれているコンテキストをキャプチャしてはいけません を参照してください。
ProvidesContextAttribute
その型の値を取得する他のすべての方法の代わりに使用する必要がある型のメンバーまたはパラメーターを示します。 このアノテーションは、「コンテキスト」値が評価されてどこかに保存されている場合、つまり、この値を取得する他のすべての方法を既存の方法と統合する必要がある場合に役立ちます。
サンプル
PathReferenceAttribute
パラメーターが Web プロジェクト内のファイルまたはフォルダーへのパスであることを示します。 パスは、Web ルート(〜)から始まる相対パスまたは絶対パスにすることができます。
SourceTemplateAttribute
この属性でマークされた拡張メソッドは、コード補完によって「ソーステンプレート」として処理されます。 拡張メソッドが何らかの式で完了すると、そのソースコードは呼び出しサイトでテンプレートのように自動的に展開されます。
テンプレートメソッドの本体には、有効なソースコードや「$」で始まる特別なコメントを含めることができます。 これらのコメント内のテキストは、テンプレートが適用されるときにソースコードとして追加されます。 テンプレートパラメーターは、追加のメソッドパラメーターとして、または 2 つの '$' 記号で囲まれた識別子として使用できます。 MacroAttribute 属性を使用してパラメーターのマクロを指定します。 展開に使用する式は ターゲットパラメーターで調整できます。
サンプル
この例では、 forEach メソッドはすべての enumerable 型の値で使用できるソーステンプレートで、通常の C# foreach ステートメントを生成し、キャレットをブロック内に配置します:
Members
Target展開ポイントで複数の式が使用可能な場合、テンプレートの実行のためにキャプチャーする式を指定できます。 指定しない場合は、 内部とみなされます。
詳細については、 ソーステンプレート を参照してください。
MacroAttribute
SourceTemplateAttribute のパラメーターにマクロを指定できます。
この属性は、メソッド全体またはその追加パラメーターのいずれかに適用できます。 マクロ式は 式プロパティで定義されます。 メソッドに適用される場合、ターゲットテンプレートパラメーターは ターゲットプロパティで定義されます。 パラメーターにマクロをサイレントで適用するには、 Editable プロパティ値を -1 に設定します。
サンプル
属性をソーステンプレートメソッドに適用する:
属性をテンプレートメソッドのパラメーターに適用する:
Members
Expressionテンプレートが展開されるときに SourceTemplateAttribute パラメーターで実行されるマクロを指定できます。
Editableテンプレートのデプロイ時に編集可能になるターゲットパラメーターの出現を指定できます。
ターゲットパラメーターがテンプレート内で複数回使用されている場合、編集可能になるのは 1 か所だけで、他の箇所は同期して変更されます。 編集可能な箇所のゼロベースインデックスを指定するには、値に  >= 0 を使用します。 テンプレート展開時にパラメーターを編集不可にするには、-1 を使用します。
TargetMacroAttribute がテンプレートメソッドに適用されている場合、 SourceTemplateAttribute のターゲットパラメーターを識別します。
詳細については、 ソーステンプレート を参照してください。
CollectionAccessAttribute
コレクション型に対するメソッド、コンストラクターの呼び出し、プロパティへのアクセスがコレクションの内容にどのような影響を与えるかを示します。 メソッドの戻り値に適用すると、返されたコレクションが呼び出し元専用に作成されるか (CollectionAccessType.UpdatedContent )、外部から読み取り / 更新できるか (CollectionAccessType.Read/CollectionAccessType.UpdatedContent) が示されます。 CollectionAccessType を使用してアクセスの種類を指定します。
この属性を使用すると、すべてのコレクションメソッドにこの属性が設定されている場合にのみ意味があります。
サンプル
詳細については、 コレクションアクセス分析 を参照してください。
AssertionMethodAttribute
マークされたメソッドがアサーションメソッドであり、いずれかの条件が満たされた場合に制御フローを停止することを示します。 条件を設定するには、パラメーターのいずれかに AssertionConditionAttribute 属性をマークしてください。
AssertionConditionAttribute
アサーションメソッドの条件パラメーターを示します。 メソッド自体は AssertionMethodAttribute 属性でマークされる必要があります。 属性の必須引数はアサーション型です。
TerminatesProgramAttribute
マークされたメソッドが制御フローの実行を無条件に終了することを示します。 例: 無条件に例外をスローする可能性があります。
LinqTunnelAttribute
メソッドが列挙が延期された純粋な LINQ メソッドであることを示します (Enumerable.Select または Enumerable.Where など)。 このアノテーションを使用すると、LINQ メソッドチェーンを分析することによって、デリゲート型のパラメーターの [InstantHandle] アノテーションを推論できます。
NoEnumerationAttribute
パラメーターとして渡された IEnumerable が列挙されていないことを示します。 このアノテーションを使用して、「IEnumerable の複数列挙の可能性」インスペクションを抑制します。
サンプル
RegexPatternAttribute
マークされたパラメーター、フィールド、プロパティが正規表現パターンであることを示します。
詳細については、 正規表現の支援 を参照してください。
LanguageInjectionAttribute
マークされたパラメーター、フィールド、プロパティが、指定された言語のコードフラグメントを含む文字列リテラルを受け入れることを示します。
サンプル
サンプル
Members
InjectedLanguage挿入されたコードフラグメントの言語を指定します。
InjectedLanguageName挿入されたコードフラグメントの言語名を指定します。
Prefix挿入された文字列リテラルの「前」にある文字列を指定します。
Suffix挿入された文字列リテラルに「続く」文字列を指定します。
詳細については、 [LanguageInjectionAttribute] を使用する を参照してください。
NoReorderAttribute
IDE のメンバーの並べ替え機能が、マークされたクラスのメンバーを破棄しないようにします。
属性はメンバーの並べ替えパターンに記述する必要があります。
詳細については、 ファイルとタイプのレイアウトパターンでメンバーを再配置する を参照してください。
CodeTemplateAttribute
構造検索および置換構文を使用してコード検索パターンを定義します。 これにより、特定のパターンに一致するコードブロックを検索し、必要に応じて置き換えることができます。
検索および置換パターンは、テキスト部分とプレースホルダーで構成されます。 テキスト部分には、ターゲット言語で許可されている識別子のみを含める必要があり、完全に一致します (空白、タブ文字、改行は無視されます)。 プレースホルダーを使用すると、ターゲットコードブロックの変数部分を一致させることができます。
プレースホルダーの形式は次のようになります: $placeholder_name$ - ここで、 placeholder_name は任意の識別子です。 定義済みのプレースホルダー:
$this$- 包含型の式$thisType$- 収容型$member$- 現在のメンバーのプレースホルダー$qualifier$- このプレースホルダーは置換パターンで使用でき、$member$プレースホルダーと一致する修飾子式を挿入するために使用できます。 ($qualifier$プレースホルダーが使用されている場合、$member$プレースホルダーは修飾された参照のみに一致することに注意してください。)$expression$- あらゆるタイプの表現$identifier$- 識別子のプレースホルダー$args$- 任意の数の引数$arg$- 単一の引数$arg1$ ... $arg10$- 単一の引数$stmts$- 任意の数のステートメント$stmt$- 単一のステートメント$stmt1$ ... $stmt10$- 単一のステートメント$name{Expression, 'Namespace.FooType'}$-Namespace.FooTypeタイプの式$expression{'Namespace.FooType'}$-Namespace.FooTypeタイプの式$name{Type, 'Namespace.FooType'}$-Namespace.FooType型$type{'Namespace.FooType'}$-Namespace.FooType型$statement{1,2}$- 1 つまたは 2 つのステートメント
サポートされている型の独自のプレースホルダーを定義し、各プレースホルダー型の引数を指定することもできます。 これは、 $name{type, arguments}$ 形式を使用して実行できます。 ここで、 name - はプレースホルダーの名前、 type - はプレースホルダーの型 (次のいずれか: 式、型、識別子、ステートメント、引数、メンバー)、 arguments - プレースホルダーの引数のリストです。 各プレースホルダー型は独自の引数をサポートします。 詳細については、以下の例を確認してください。 名前に次の接頭辞のいずれかが付いている場合、プレースホルダーの種類は省略でき、プレースホルダー名から決定できます。
expr、expression - 式プレースホルダー、例:
$exprPlaceholder{}$、$expressionFoo{}$arg、argument - 引数プレースホルダー、例:
$argPlaceholder{}$、$argumentFoo{}$ident、identifier - 識別子のプレースホルダー、例:
$identPlaceholder{}$、$identifierFoo{}$stmt、ステートメント - ステートメントのプレースホルダー、例:
$stmtPlaceholder{}$、$statementFoo{}$type - タイプのプレースホルダー、例:
$typePlaceholder{}$、$typeFoo{}$member - メンバーのプレースホルダー、例:
$memberPlaceholder{}$、$memberFoo{}$
式のプレースホルダー引数:
expressionType - 文字列値(引用符で囲まれた)、一致する完全な型名を指定します(デフォルトは空文字列)
exactType - ブール値。式が完全一致の型であるべきかを指定します(デフォルトは false)
例:
$myExpr{Expression, 'Namespace.FooType', true}$-Namespace.FooTypeタイプの式と完全に一致する式プレースホルダーを定義します。$myExpr{Expression, 'Namespace.FooType'}$-Namespace.FooTypeタイプの式、または暗黙的にNamespace.FooTypeに変換できる式に一致する式プレースホルダーを定義します。$myExpr{Expression}$- 任意のタイプの式に一致する式プレースホルダーを定義します。$exprFoo{'Namespace.FooType', true}$-Namespace.FooTypeタイプの式と完全に一致する式プレースホルダーを定義します。
プレースホルダー引数を入力します。
type - 文字列値(引用符で囲まれた)、一致する完全な型名を指定します(デフォルトは空文字列)
exactType - ブール値。式が完全一致の型であるかどうかを指定します(デフォルトは false)
例:
$myType{Type, 'Namespace.FooType', true}$-Namespace.FooType型と完全に一致する型プレースホルダーを定義します。$myType{Type, 'Namespace.FooType'}$-Namespace.FooType型、または暗黙的にNamespace.FooTypeに変換できる型に一致する型プレースホルダーを定義します。$myType{Type}$- 任意の型に一致する型プレースホルダーを定義します。$typeFoo{'Namespace.FooType', true}$-Namespace.FooType型と完全に一致する型プレースホルダーを定義します。
識別子プレースホルダー引数:
nameRegex - 文字列値(引用符で囲まれた)、一致に使用する正規表現を指定します(デフォルトは空文字列)
nameRegexCaseSensitive - ブール値。name 正規表現が大文字小文字を区別するかどうかを指定します(デフォルトは true)
type - 文字列値(引用符で囲まれた)、一致する完全な型名を指定します(デフォルトは空文字列)
exactType - ブール値。式が完全一致の型であるべきかを指定します(デフォルトは false)
例:
$myIdentifier{Identifier, 'my.*', false, 'Namespace.FooType', true}$-my接頭辞で始まりNamespace.FooTypeタイプの識別子 (大文字と小文字を無視) に一致する識別子プレースホルダーを定義します。$myIdentifier{Identifier, 'my.*', true, 'Namespace.FooType', true}$-Namespace.FooTypeタイプのmy接頭辞で始まる識別子 (大文字と小文字を区別) に一致する識別子のプレースホルダーを定義します。$identFoo{'my.*'}$-my接頭辞で始まる識別子 (大文字と小文字を区別) に一致する識別子のプレースホルダーを定義します。
ステートメントプレースホルダー引数:
最小限の出現箇所 - 一致するステートメントの最小数 (- デフォルトでは -1)
maximalOccurrences - 一致するステートメントの最大数 (- デフォルトでは -1)
例:
$myStmt{Statement, 1, 2}$- 1 つまたは 2 つのステートメントに一致するステートメントプレースホルダーを定義します。$myStmt{Statement}$- 任意の数のステートメントに一致するステートメントプレースホルダーを定義します。$stmtFoo{1, 2}$- 1 つまたは 2 つのステートメントに一致するステートメントプレースホルダーを定義します。
引数プレースホルダー引数:
最小限の出現箇所 - 一致する引数の最小数 (- デフォルトでは -1)
maximalOccurrences - 一致する引数の最大数 (- デフォルトでは -1)
例:
$myArg{Argument, 1, 2}$- 1 つまたは 2 つの引数に一致する引数プレースホルダーを定義します。$myArg{Argument}$- 任意の数の引数に一致する引数プレースホルダーを定義します。$argFoo{1, 2}$- 1 つまたは 2 つの引数に一致する引数プレースホルダーを定義します。
メンバーのプレースホルダーの引数:
docId - 文字列値(引用符で囲まれた)、一致するメンバーの XML ドキュメント ID を指定します(デフォルトは空)
例:
$myMember{Member, 'M:System.String.IsNullOrEmpty(System.String)'}$-System.String型のIsNullOrEmptyメンバーに一致するメンバープレースホルダーを定義します。$memberFoo{'M:System.String.IsNullOrEmpty(System.String)'}$-System.String型のIsNullOrEmptyメンバーに一致するメンバープレースホルダーを定義します。
Members
SearchTemplate構造的な検索パターン。
パターンにはテキスト部分が含まれており、ターゲット言語で許可されている識別子と、ターゲットコードブロックの可変部分と一致するプレースホルダーのみを含める必要があります。
Message検索パターンに一致するコードブロックが見つかったときに表示するメッセージ。
メッセージテキストの先頭に「エラー:」、「警告:」、「提案:」、または「ヒント:」の接頭辞を追加して、パターンの重大度を指定することもできます。 置換テンプレートを使用したコードパターンは、デフォルトで「提案」重大度を持ちます。 置換パターンが指定されていない場合、パターンの重大度は「警告」になります。
ReplaceTemplate一致したパターンを置換するために使用する置換パターン。
ReplaceMessageバルブに表示するメッセージを置き換えます。
FormatAfterReplaceコード置換後にコードフォーマットを適用します。
MatchSimilarConstructs類似のコードブロックを一致させる必要があるかどうか。
ShortenReferences名前空間のインポートディレクティブを自動的に挿入するか、テンプレートの適用後に冗長になる修飾子を削除します。
SuppressionKey抑制キーとして使用する文字列。 デフォルトでは、次の抑制キーが使用されます:
CodeTemplate_SomeType_SomeMember。ここで「SomeType」と「SomeMember」は、この属性が適用された関連する型とメンバーの名前です。
詳細については、 非推奨の API を報告および更新する を参照してください。
IgnoreSpellingAndGrammarErrorsAttribute
このパラメーターの引数として渡された文字列リテラルのスペルエラーや文法エラーをチェックしないことを示します。
詳細については、 文法とスペルの分析 を参照してください。
AspMvcActionAttribute
ASP.NET MVC 属性。 パラメーターに適用すると、パラメーターが MVC アクションであることを示します。 メソッドに適用すると、MVC アクション名はコンテキストから暗黙的に計算されます。 System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String) に似たカスタムラッパーにこの属性を使用します。
AspMvcAreaAttribute
ASP.NET MVC 属性。 マークされたパラメーターが MVC 領域であることを示します。 System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String) に似たカスタムラッパーにこの属性を使用します。
AspMvcControllerAttribute
ASP.NET MVC 属性。 パラメーターに適用すると、パラメーターが MVC コントローラーであることを示します。 メソッドに適用すると、MVC コントローラー名はコンテキストから暗黙的に計算されます。 System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String, String) に似たカスタムラッパーにこの属性を使用します。
AspMvcMasterAttribute
ASP.NET MVC 属性。 マークされたパラメーターが MVC マスターであることを示します。 System.Web.Mvc.Controller.View(String, String) に似たカスタムラッパーにこの属性を使用します。
AspMvcModelTypeAttribute
ASP.NET MVC 属性。 マークされたパラメーターが MVC モデル型であることを示します。 System.Web.Mvc.Controller.View(String, Object) に似たカスタムラッパーにこの属性を使用します。
AspMvcPartialViewAttribute
ASP.NET MVC 属性。 パラメーターに適用すると、パラメーターが MVC の部分ビューであることを示します。 メソッドに適用すると、MVC の部分ビュー名がコンテキストから暗黙的に計算されます。 System.Web.Mvc.Html.RenderPartialExtensions.RenderPartial(HtmlHelper, String) に似たカスタムラッパーにこの属性を使用します。
AspMvcSuppressViewErrorAttribute
ASP.NET MVC 属性。 クラスまたはメソッド内の MVC ビューに対してインスペクションを無効にすることができます。
AspMvcDisplayTemplateAttribute
ASP.NET MVC 属性。 パラメーターが MVC 表示テンプレートであることを示します。 System.Web.Mvc.Html.DisplayExtensions.DisplayForModel(HtmlHelper, String) に似たカスタムラッパーにこの属性を使用します。
AspMvcEditorTemplateAttribute
ASP.NET MVC 属性。 マークされたパラメーターが MVC エディターテンプレートであることを示します。 System.Web.Mvc.Html.EditorExtensions.EditorForModel(HtmlHelper, String) に似たカスタムラッパーにこの属性を使用します。
AspMvcTemplateAttribute
ASP.NET MVC 属性。 マークされたパラメーターが MVC テンプレートであることを示します。 System.ComponentModel.DataAnnotations.UIHintAttribute(System.String) に似たカスタムラッパーにこの属性を使用します。
AspMvcViewAttribute
ASP.NET MVC 属性。 パラメーターに適用すると、パラメーターが MVC ビューコンポーネントであることを示します。 メソッドに適用すると、MVC ビュー名はコンテキストから暗黙的に計算されます。 System.Web.Mvc.Controller.View(Object) に似たカスタムラッパーにこの属性を使用します。
AspMvcViewComponentAttribute
ASP.NET MVC 属性。 パラメーターに適用すると、パラメーターが MVC ビューコンポーネント名であることを示します。
AspMvcViewComponentViewAttribute
ASP.NET MVC 属性。 パラメーターに適用すると、パラメーターが MVC ビューコンポーネントビューであることを示します。 メソッドに適用される場合、MVC ビューのコンポーネントビュー名はデフォルトです。
AspMvcActionSelectorAttribute
ASP.NET MVC 属性。 属性のパラメーターに適用すると、このパラメーターが MVC アクション名であることを示します。
サンプル
RouteTemplateAttribute
マークされたパラメーター、フィールド、プロパティがルートテンプレートであることを示します。
この属性により、IDE は Web フレームワークのルートテンプレートの使用を認識して、構文のハイライト、コード補完、ナビゲーション、名前変更、文字列リテラルの他の機能を有効にすることができます。
RouteParameterConstraintAttribute
マークされた型がカスタムルートパラメーター制約であり、アプリケーションのスタートアップに ConstraintName という名前で登録されていることを示します。
ターゲット制約が特定型のルートパラメーターのみに一致する場合、 ProposedType を指定できます。これにより、IDE はルートテンプレートでの使用時にデフォルトの System.String ではなく指定した型でメソッドのパラメーターを作成し、制約の提案型が一致したパラメーター型と競合するかどうかをチェックできます。
UriStringAttribute
マークされたパラメーター、フィールド、プロパティが URI 文字列であることを示します。
この属性により、アノテーション付きパラメーター、フィールド、プロパティに割り当てられた URI 文字列リテラルのコード補完、ナビゲーション、名前変更、その他の機能が有効になります。
AspRouteConventionAttribute
マークされたメソッドが ASP.NET のルーティング規則を宣言していることを示します。
IDE は、この属性でマークされたメソッドのすべての使用状況を分析し、補完、ナビゲーション、その他の機能へのすべてのルートを URI 文字列に追加します。
AspDefaultRouteValuesAttribute
マークされたメソッドパラメーターに、ASP.NET のルーティング規則の既定のルート値が含まれていることを示します。
AspRouteValuesConstraintsAttribute
マークされたメソッドパラメーターに、ASP.NET のルーティング規則のルート値に対する制約が含まれていることを示します。
AspRouteOrderAttribute
マークされたパラメーターまたはプロパティに、ASP.NET ルーティング属性によって提供されるルーティング順序が含まれていることを示します。
AspRouteVerbsAttribute
マークされたパラメーターまたはプロパティに、ASP.NET ルーティング属性によって提供される HTTP 動詞が含まれていることを示します。
AspAttributeRoutingAttribute
マークされた属性が ASP.NET の属性ルーティングに使用されることを示します。
IDE は、この属性でマークされた属性のすべての使用状況を分析し、補完、ナビゲーション、その他の機能へのすべてのルートを URI 文字列に追加します。
AspMinimalApiDeclarationAttribute
マークされたメソッドが ASP.NET Minimal API エンドポイントを宣言していることを示します。
IDE は、この属性でマークされたメソッドのすべての使用状況を分析し、補完、ナビゲーション、その他の機能へのすべてのルートを URI 文字列に追加します。
AspMinimalApiGroupAttribute
マークされたメソッドが ASP.NET Minimal API エンドポイントグループを宣言していることを示します。
AspMinimalApiHandlerAttribute
マークされたパラメーターに ASP.NET Minimal API エンドポイントハンドラーが含まれていることを示します。
AspMinimalApiImplicitEndpointDeclarationAttribute
マークされたメソッドに最小限の API エンドポイント宣言が含まれていることを示します。
IDE は、この属性でマークされたメソッドのすべての使用状況を分析し、属性で宣言されたすべてのルートを補完、ナビゲーション、URI 文字列上のその他の機能に追加します。
Members
QueryParametersエンドポイントに定義されたクエリパラメーターのコンマ区切りのリスト
RazorSectionAttribute
Razor 属性。 マークされたパラメーターまたはメソッドが Razor セクションであることを示します。 System.Web.WebPages.WebPageBase.RenderSection(String) に似たカスタムラッパーにこの属性を使用します。
XamlItemsControlAttribute
XAML 属性。 ItemsSource プロパティを持ち、内部項目 DataContext 型解決を有効にするために ItemsControl-derived 型として扱われる必要がある型を示します。
XamlItemBindingOfItemsControlAttribute
XAML 属性。 ItemsControl-derived タイプの一部の項目をバインドするために使用される、一部の BindingBase-derived タイプのプロパティを示します。 このアノテーションにより、そのようなプロパティの XAML バインディングの DataContext 型解決が有効になります。
プロパティには、 ItemsControl 型のツリー祖先、または XamlItemsControlAttribute 属性でマークされたものが必要です。
XamlItemStyleOfItemsControlAttribute
XAML 属性。 ItemsControl-derived タイプの項目のスタイルを設定するために使用される、一部の Style-derived タイプのプロパティを示します。 このアノテーションにより、そのようなプロパティの XAML バインディングで DataContext 型解決が有効になります。
プロパティには、 ItemsControl 型のツリー祖先、または XamlItemsControlAttribute 属性でマークされたものが必要です。
XamlOneWayBindingModeByDefaultAttribute
XAML 属性。 DependencyProperty にデフォルトで OneWay バインディングモードがあることを示します。
この属性は、DependencyProperty の CLR アクセサープロパティが存在する場合は適用する必要があり、存在しない場合は、DependencyProperty 記述子フィールドに適用する必要があります。
XamlTwoWayBindingModeByDefaultAttribute
XAML 属性。 DependencyProperty にデフォルトで TwoWay バインディングモードがあることを示します。
この属性は、DependencyProperty の CLR アクセサープロパティが存在する場合は適用する必要があり、存在しない場合は、DependencyProperty 記述子フィールドに適用する必要があります。
TestSubjectAttribute
テストクラスまたはテストメソッドによってテストされる型を指定します。
この情報は、IDE がテストとテスト対象型間を移動するために使用したり、テストランナーがサブジェクトごとにテストをグループ化し、より適切なテストレポートを提供したりするために使用できます。
Members
Subjectテスト対象の型を取得します。
#ctor(System.Type)指定されたテスト用型を使って TestSubjectAttribute クラスの新しいインスタンスを初期化します。
テストされているタイプ。
詳細については、 テストとテストされたコード間を移動する を参照してください。
MeansTestSubjectAttribute
ジェネリクス引数をテストクラスのテスト対象としてマークします。
基本テストクラスのジェネリクスパラメーターに適用して、引数として渡された型がテスト対象のクラスであることを示すことができます。 この情報は、IDE がテストとテスト対象型間を移動するために使用したり、テストランナーがサブジェクトごとにテストをグループ化し、より適切なテストレポートを提供したりするために使用できます。
サンプル
詳細については、 テストとテストされたコード間を移動する を参照してください。
ヘルパーの種類
ImplicitUseKindFlags
MeansImplicitUseAttribute または UsedImplicitlyAttribute でマークされたときに、暗黙的に使用されるシンボルの詳細を指定します。
Members
Access属性とマークされたエンティティのみが使用されます。
Assignメンバーへの暗黙的な割り当てを示します。
InstantiatedWithFixedConstructorSignature固定コンストラクターシグネチャーを使用した型の暗黙的なインスタンス化を示します。 つまり、未使用のコンストラクターパラメーターはそのように報告されません。
InstantiatedNoFixedConstructorSignature型の暗黙的なインスタンス化を示します。
ImplicitUseTargetFlags
MeansImplicitUseAttribute または UsedImplicitlyAttribute でマークされたときに暗黙的に使用されると見なされるものを指定します。
Members
Members属性でマークされたタイプのメンバーは使用されていると見なされます。
WithInheritors継承されたエンティティは使用されていると見なされます。
WithMembers属性でマークされたエンティティとそのすべてのメンバーが使用されていると見なされます。
SourceTemplateTargetExpression
展開時点で式をキャプチャーする方法を定義するための SourceTemplateAttribute の値を提供します
Members
Inner内部表現を選択します
サンプル:
value > 42.{caret}が42をキャプチャーしますサンプル:
_args = args.{caret}がargsをキャプチャーしますOuter外部式を選択します
サンプル:
value > 42.{caret}がvalue > 42をキャプチャーしますサンプル:
_args = args.{caret}は割り当て全体をキャプチャーします
詳細については、 ターゲット式 を参照してください。
CollectionAccessType
コレクションメソッド呼び出しがコレクションの内容にどのような影響を与えるかを定義するための CollectionAccessAttribute の値を指定します。
Members
Noneメソッドはコレクションのコンテンツを使用または変更しません。
Readメソッドはコレクションの内容だけを読み込みますが、コレクションは変更しません。
ModifyExistingContentメソッドはコレクションの内容を変更できますが、新しい要素は追加しません。
UpdatedContentメソッドは、新しい要素をコレクションに追加できます。
AssertionConditionType
アサーションの型を指定します。 アサーションメソッドの引数が条件を満たす場合、実行は続行されます。 それ以外の場合は、実行が停止されたものとみなされます。
Members
IS_TRUEマークされたパラメーターは true に評価されるべきです。
IS_FALSEマークされたパラメーターは false に評価されるべきです。
IS_NULLマークされたパラメーターは NULL 値に評価される必要があります。
IS_NOT_NULLマークされたパラメーターは null 値でないと評価される必要があります。
InjectedLanguage
LanguageInjectionAttribute でマークされた文字列リテラル内に挿入されたコード箇所の言語。
詳細については、 [LanguageInjectionAttribute] を使用する を参照してください。