Sdílet prostřednictvím


CodeModel.CodeTypeFromFullName-Methode

Aktualisiert: November 2007

Gibt ein Codeelement zurück, das auf einem voll gekennzeichneten Namen basiert.

Namespace:  EnvDTE
Assembly:  EnvDTE (in EnvDTE.dll)

Syntax

'Declaration
Function CodeTypeFromFullName ( _
    Name As String _
) As CodeType
'Usage
Dim instance As CodeModel
Dim Name As String
Dim returnValue As CodeType

returnValue = instance.CodeTypeFromFullName(Name)
CodeType CodeTypeFromFullName(
    string Name
)
CodeType^ CodeTypeFromFullName(
    String^ Name
)
function CodeTypeFromFullName(
    Name : String
) : CodeType

Parameter

  • Name
    Typ: System.String

    Erforderlich. Ein voll gekennzeichneter Symbolname, z. B. Namespace1.Namespace2.Class1.Member1.

Rückgabewert

Typ: EnvDTE.CodeType

Ein CodeType-Objekt.

Hinweise

Wenn der angegebene Name weder im Projekt noch in zugehörigen Verweisen gefunden wird, gibt CodeTypeFromFullName anstelle eines Codeelements mit einer Kind-Eigenschaft vsCMElementOther und einer InfoLocation-Eigenschaft vsCMInfoLocationNone den Wert Nothing zurück.

Hinweis:

Die Werte von Codemodellelementen wie Klassen, Strukturen, Funktionen, Attributen, Delegaten usw. können nach bestimmten Bearbeitungsvorgängen nicht deterministisch sein, d. h., dass nicht mehr davon ausgegangen werden kann, dass ihre Werte immer unverändert bleiben. Weitere Informationen finden Sie im Abschnitt zum Änderungsverhalten von Codemodellelementwerten unter Ermitteln von Code über das Codemodell (Visual Basic).

Beispiele

Sub CodeTypeFromFullNameExample(ByVal dte As DTE2)

    ' Before running this example, open a project.
    Try
        Dim proj As Project
        For Each proj In dte.Solution
            Dim cm As CodeModel = proj.CodeModel
            If IsNothing(cm) = False Then
                Dim name As String = _
                    ConvertFullName(cm, "System.Object")
                Dim typ As CodeType = cm.CodeTypeFromFullName(name)

                If IsNothing(typ) = False Then
                    MsgBox(proj.Name & vbCrLf & name & "'s kind is " _
                        & typ.Kind.ToString())
                Else
                    MsgBox(proj.Name & _
                        ": CodeTypeFromFullName failed.")
                End If
            End If
        Next
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try

End Sub

Function ConvertFullName(ByVal cm As CodeModel, _
    ByVal fullName As String) As String

    ' Convert a .NET type name into a C++ type name.
    If (cm.Language = CodeModelLanguageConstants.vsCMLanguageVC) Or _
        (cm.Language = CodeModelLanguageConstants.vsCMLanguageMC) Then
        Return fullName.Replace(".", "::")
    Else
        Return fullName
    End If

End Function
public void CodeTypeFromFullNameExample(DTE2 dte)
{
    // Before running this example, open a project.
    try
    {
        foreach (Project proj in dte.Solution)
        {
            CodeModel cm = proj.CodeModel;
            if (cm != null)
            {
                string name = ConvertFullName(cm, "System.Object");
                CodeType typ = cm.CodeTypeFromFullName(name);

                if (typ != null)
                    MessageBox.Show(proj.Name + "\r\n" + 
                        name + "'s kind is " + typ.Kind.ToString());
                else
                    MessageBox.Show(proj.Name + 
                        ": CodeTypeFromFullName failed.");
            }
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

string ConvertFullName(CodeModel cm, string fullName)
{
    // Convert a .NET type name into a C++ type name.
    if ((cm.Language == CodeModelLanguageConstants.vsCMLanguageVC) || 
        (cm.Language == CodeModelLanguageConstants.vsCMLanguageMC))
        return fullName.Replace(".", "::");
    else
        return fullName;
}

Berechtigungen

Siehe auch

Referenz

CodeModel-Schnittstelle

CodeModel-Member

EnvDTE-Namespace

Weitere Ressourcen

Gewusst wie: Kompilieren und Ausführen der Codebeispiele für das Automatisierungsobjektmodell

Ermitteln von Code über das Codemodell (Visual Basic)

Ermitteln von Code über das Codemodell (Visual C#)