Partilhar via


Método CodeModel.CodeTypeFromFullName

Retorna um elemento de código com base em um nome totalmente qualificado.

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

Sintaxe

'Declaração
Function CodeTypeFromFullName ( _
    Name As String _
) As CodeType
CodeType CodeTypeFromFullName(
    string Name
)
CodeType^ CodeTypeFromFullName(
    String^ Name
)
abstract CodeTypeFromFullName : 
        Name:string -> CodeType 
function CodeTypeFromFullName(
    Name : String
) : CodeType

Parâmetros

  • Name
    Tipo: System.String
    Obrigatório.Nome de um símbolo totalmente qualificado, como Namespace1.Namespace2.Class1.Member1.

Valor de retorno

Tipo: EnvDTE.CodeType
A CodeType object.

Comentários

Se o nome especificado não for encontrado no projeto ou em qualquer uma de suas referências, CodeTypeFromFullName retorna Nothing, em vez de retornar de um elemento de código com um Kind propriedade do vsCMElementOther e um InfoLocation propriedade do vsCMInfoLocationNone.

ObservaçãoObservação

Os valores de elementos de modelo de código, como classes, estruturas, funções, atributos, delegados e assim por diante podem ser não-determinísticos depois de fazer determinados tipos de edições, o que significa que seus valores não confie sempre permanecer o mesmo.Para obter mais informações, consulte a seção valores de elemento de modelo de código podem ser alterada de Descobrindo o código usando o modelo de código (Visual Basic).

Exemplos

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;
}

Segurança do .NET Framework

Consulte também

Referência

CodeModel Interface

Namespace EnvDTE

Outros recursos

Como: compilar e executar os exemplos de código de modelo de objeto de automação

Descobrindo o código usando o modelo de código (Visual Basic)

Descobrindo o código usando o modelo de código (Visual C#)