Proprietà CodeAttribute2.Collection

Ottiene una raccolta di CodeAttribute2 oggetti.

Spazio dei nomi:  EnvDTE80
Assembly:  EnvDTE80 (in EnvDTE80.dll)

Sintassi

'Dichiarazione
ReadOnly Property Collection As CodeElements
CodeElements Collection { get; }
property CodeElements^ Collection {
    CodeElements^ get ();
}
abstract Collection : CodeElements
function get Collection () : CodeElements

Valore proprietà

Tipo: EnvDTE.CodeElements
Una raccolta di CodeAttribute2 oggetti.

Note

[!NOTA]

I valori degli argomenti dell'attributo del codice, dopo essere stato assegnato, non vengono mantenuti in memoria da Visual Studiopertanto, può essere valido quando un aggiornamento futuro l'argomento dell'attributo del codice verifica.Ovvero un accesso successivo dell'argomento può restituire E_FAIL o un valore completamente diverso.(Qualcosa che incida sugli elementi figlio dell'elemento, tuttavia, non ha questo problema.)

A causa di tale comportamento non deterministico, è necessario recuperare il valore dell'argomento prima di modificarlo.Ad esempio, se si imposta un argomento dell'attributo del codice nel codice, ad esempio myAttrArg.Value = """a first value"""quindi, è opportuno definire in modo esplicito farvi riferimento prima di aggiornamento, ad esempio myAttrArg = myAttr.Arguments.Item("first value")quindi assegnare il nuovo valore, myAttrArg.Value = """a second value""".Utilizzando questo assicura che l'argomento corretto viene modificato.

Inoltre, i valori degli elementi del modello di codice come classi, strutture, le funzioni, gli attributi, delegati, e così via possono non essere deterministici dopo l'inserimento di determinati tipi di modifiche, pertanto i relativi valori non possono essere basati su per rimanere sempre gli stessi.Per ulteriori informazioni, vedere i valori degli elementi del modello di codice della sezione può cambiare in Individuazione di codice mediante il modello di codice (Visual Basic).

Esempi

Nell'esempio seguente viene creato un nuovo spazio dei nomi e l'attributo nella classe corrente e vengono elencate alcune delle proprietà dell'attributo.

public void CreateClassAndAttrib(DTE2 applicationObject)
{
    // Before running, load or create a project.
    FileCodeModel2 fcm2 = GetFileCodeModel(applicationObject);
    CodeAttribute2 cmAttribute;
    CodeClass2 cmClass;
    String msg = null;

    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);
                msg += "Attribute count: " + 
                cmAttribute.Collection.Count + Environment.NewLine;
                msg += "Document name: " + 
                cmAttribute.DTE.ActiveDocument.Name;
            }
            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;
}

Sicurezza di .NET Framework

Vedere anche

Riferimenti

CodeAttribute2 Interfaccia

Overload Collection

Spazio dei nomi EnvDTE80

Altre risorse

Procedura: compilare ed eseguire gli esempi di codice del modello a oggetti di automazione

Individuazione di codice mediante il modello di codice (Visual Basic)

Individuazione di codice mediante il modello di codice (Visual C#)