共用方式為


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 取得 CodeElement 物件的集合,此集合包含與這個屬性 (Attribute) 相關聯的 CodeAttributeArgument 物件。
公用屬性 Children 取得這個程式碼建構內所含物件的集合。
公用屬性 Collection 取得 CodeAttribute2 物件的集合。
公用屬性 DTE 取得最上層的擴充性物件。
公用屬性 EndPoint 取得編輯點,此編輯點是程式碼屬性的結尾位置。
公用屬性 Extender 傳回要求的 Extender (如果適用於這個程式碼屬性)。
公用屬性 ExtenderCATID 取得物件的擴充項分類 ID (CATID)。
公用屬性 ExtenderNames 取得物件的可用擴充項名稱清單。
公用屬性 FullName 取得物件檔案的完整路徑和名稱。
公用屬性 InfoLocation 取得程式碼模型。
公用屬性 IsCodeType 取得是否可從這個物件取得 CodeType 物件。
公用屬性 Kind 取得列舉型別,指出屬性的型別。
公用屬性 Language 取得常數,用以辨識撰寫屬性時所使用的程式語言。
公用屬性 Name 設定或取得程式碼屬性的名稱。
公用屬性 Parent 取得程式碼屬性的直接上層父物件。
公用屬性 ProjectItem 取得與程式碼屬性關聯的 ProjectItem
公用屬性 StartPoint 取得 TextPoint 物件,用以定義屬性的開頭。
公用屬性 Target 設定或取得程式碼屬性的目標。
公用屬性 Value 設定或取得程式碼屬性的資料。

回頁首

方法

  名稱 描述
公用方法 AddArgument 將引數加入至屬性。
公用方法 Delete 從程式碼項目中移除所有屬性。
公用方法 GetEndPoint 傳回標示屬性結尾位置的 TextPoint 物件。
公用方法 GetStartPoint 傳回定義屬性開頭位置的 TextPoint 物件。

回頁首

備註

CodeAttribute2 物件代表與程式碼項目關聯的單一 COM 中繼資料 (Metadata) 屬性。 您可以用 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;
}

請參閱

參考

EnvDTE80 命名空間

其他資源

如何:編譯和執行 Automation 物件模型程式碼範例

使用程式碼模型探索程式碼 (Visual Basic)

使用程式碼模型探索程式碼 (Visual C#)