CodeAttribute2 インターフェイス
コード要素の属性を定義します。
名前空間: EnvDTE80
アセンブリ: EnvDTE80 (EnvDTE80.dll 内)
構文
'宣言
<GuidAttribute("35187E2A-E5F6-4F89-A4CE-DA254640855B")> _
Public Interface CodeAttribute2 _
Inherits CodeAttribute
[GuidAttribute("35187E2A-E5F6-4F89-A4CE-DA254640855B")]
public interface CodeAttribute2 : CodeAttribute
[GuidAttribute(L"35187E2A-E5F6-4F89-A4CE-DA254640855B")]
public interface class CodeAttribute2 : CodeAttribute
[<GuidAttribute("35187E2A-E5F6-4F89-A4CE-DA254640855B")>]
type CodeAttribute2 =
interface
interface CodeAttribute
end
public interface CodeAttribute2 extends CodeAttribute
CodeAttribute2 型で公開されるメンバーは以下のとおりです。
プロパティ
名前 | 説明 | |
---|---|---|
Arguments | この属性に関連付けられた CodeAttributeArgument オブジェクトを含む CodeElement オブジェクトのコレクションを取得します。 | |
Children | (CodeAttribute から継承されます。) | |
Children | このコード コンストラクターに含まれているオブジェクトのコレクションを取得します。 | |
Collection | (CodeAttribute から継承されます。) | |
Collection | CodeAttribute2 オブジェクトのコレクションを取得します。 | |
DTE | (CodeAttribute から継承されます。) | |
DTE | トップ レベルの機能拡張オブジェクトを取得します。 | |
EndPoint | (CodeAttribute から継承されます。) | |
EndPoint | コード属性の終了位置であるエディット ポイントを取得します。 | |
Extender[String] | (CodeAttribute から継承されます。) | |
Extender[String] | 要求された Extender がこのコード属性で利用できる場合はそれを返します。 | |
ExtenderCATID | (CodeAttribute から継承されます。) | |
ExtenderCATID | オブジェクトの Extender カテゴリ ID (CATID) を取得します。 | |
ExtenderNames | (CodeAttribute から継承されます。) | |
ExtenderNames | オブジェクトで使用できる Extender の名前の一覧を取得します。 | |
FullName | (CodeAttribute から継承されます。) | |
FullName | オブジェクトのファイルの完全パスと名前を取得します。 | |
InfoLocation | (CodeAttribute から継承されます。) | |
InfoLocation | コード モデルを取得します。 | |
IsCodeType | (CodeAttribute から継承されます。) | |
IsCodeType | このオブジェクトから CodeType オブジェクトを取得できるかどうかを示す値を取得します。 | |
Kind | (CodeAttribute から継承されます。) | |
Kind | 属性の型を示す列挙値を取得します。 | |
Language | (CodeAttribute から継承されます。) | |
Language | 属性の作成に使用されたプログラミング言語を識別する定数を取得します。 | |
Name | (CodeAttribute から継承されます。) | |
Name | コード属性の名前を設定または取得します。 | |
Parent | (CodeAttribute から継承されます。) | |
Parent | コード属性のすぐ上の親オブジェクトを取得します。 | |
ProjectItem | (CodeAttribute から継承されます。) | |
ProjectItem | コード属性に関連付けられている ProjectItem を取得します。 | |
StartPoint | (CodeAttribute から継承されます。) | |
StartPoint | 属性の先頭を定義する TextPoint を取得します。 | |
Target | コード属性の対象を設定または取得します。 | |
Value | (CodeAttribute から継承されます。) | |
Value | コード属性のデータを設定または取得します。 |
このページのトップへ
メソッド
名前 | 説明 | |
---|---|---|
AddArgument | 属性に引数を追加します。 | |
Delete() | (CodeAttribute から継承されます。) | |
Delete() | コード要素のすべての属性を削除します。 | |
GetEndPoint(vsCMPart) | (CodeAttribute から継承されます。) | |
GetEndPoint(vsCMPart) | 属性の終了位置を示す TextPoint オブジェクトを返します。 | |
GetStartPoint(vsCMPart) | (CodeAttribute から継承されます。) | |
GetStartPoint(vsCMPart) | 属性の開始位置を示す TextPoint オブジェクトを返します。 |
このページのトップへ
解説
CodeAttribute2 オブジェクトは、コード要素に関連付けられた 1 つの COM メタデータ属性を表します。AddAttribute メソッドで新しい属性を追加したり、適切なオブジェクトで Delete メソッドを使用して属性を削除したりできます。このオブジェクトを使用して、コード属性の値を取得および設定できます。
[!メモ]
特定の種類の編集を行った後に、クラス、構造体、関数、属性、デリゲートなどのコード モデル要素の値を決定できないことがあります。つまり、これらの要素の値は、信頼できる値ではなく、常に同じ値になるとは限りません。詳細については、「コード モデルを使用したコードの調査 (Visual Basic)」で、コード モデル要素値を変更する方法についての説明を参照してください。
例
// The following example creates a new namespace and attribute in the current class.
public void CreateClassAndAttrib(DTE2 applicationObject)
{
// Before running, load or create a project.
FileCodeModel2 fcm2 = GetFileCodeModel(applicationObject);
CodeAttribute2 cmAttribute;
CodeClass2 cmClass;
if (fcm2 != null)
{
CodeNamespace cmNamespace;
// Try to create a new namespace.
try
{
cmNamespace = fcm2.AddNamespace("CMNamespace", -1);
// If successful, create the other code elements.
if (cmNamespace != null)
{
cmClass = (CodeClass2)cmNamespace.AddClass("ANewClass",
-1, null, null, vsCMAccess.vsCMAccessPrivate);
cmAttribute = (CodeAttribute2)cmClass.AddAttribute
("NewAttribute", "AttributeValue", -1);
}
else
{
MessageBox.Show("Cannot continue - no filecodemodel
available.");
}
}
catch (Exception ex)
{
MessageBox.Show("ERROR: " + ex);
}
}
}
public FileCodeModel2 GetFileCodeModel(DTE2 applicationObject)
{
// Returns the FileCodeModel object of the active
// window.
TextWindow txtWin =
(TextWindow)applicationObject.ActiveWindow.Object;
FileCodeModel2 fcm2;
if (txtWin != null)
{
try
{
fcm2 = (FileCodeModel2)txtWin.Parent.
ProjectItem.FileCodeModel;
return fcm2;
}
catch (Exception ex)
{
MessageBox.Show("ERROR: " + ex);
return null;
}
}
else
return null;
}
参照
関連項目
その他の技術情報
方法 : オートメーション オブジェクト モデルのコード例をコンパイルおよび実行する