Partilhar via


Interface Reference3

Estende a Reference2 interface da VSLangProj2 namespace.

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

Sintaxe

'Declaração
<GuidAttribute("5021602E-2025-4299-88D2-0A92E8B41ADF")> _
Public Interface Reference3 _
    Inherits Reference2
[GuidAttribute("5021602E-2025-4299-88D2-0A92E8B41ADF")]
public interface Reference3 : Reference2
[GuidAttribute(L"5021602E-2025-4299-88D2-0A92E8B41ADF")]
public interface class Reference3 : Reference2
[<GuidAttribute("5021602E-2025-4299-88D2-0A92E8B41ADF")>]
type Reference3 =  
    interface
        interface Reference2
    end
public interface Reference3 extends Reference2

O tipo Reference3 expõe os membros a seguir.

Propriedades

  Nome Descrição
Propriedade pública Aliases Obtém ou define os nomes de alias para a referência especificada.Esta propriedade se aplica a Visual C# somente.
Propriedade pública AutoReferenced Obtém se a referência é feita automaticamente pelo compilador.
Propriedade pública BuildNumber (Herdado de Reference2.)
Propriedade pública BuildNumber Obtém o número de compilação da referência.
Propriedade pública Collection (Herdado de Reference2.)
Propriedade pública Collection Obtém uma coleção de References.
Propriedade pública ContainingProject (Herdado de Reference2.)
Propriedade pública ContainingProject Obtém o Project que contém a referência.
Propriedade pública CopyLocal (Herdado de Reference2.)
Propriedade pública CopyLocal Obtém ou define se a referência é copiada para o caminho de bin local.
Propriedade pública Culture (Herdado de Reference2.)
Propriedade pública Culture Obtém a seqüência de caracteres de cultura de uma referência.
Propriedade pública Description (Herdado de Reference2.)
Propriedade pública Description Obtém uma descrição de texto da referência.
Propriedade pública DTE (Herdado de Reference2.)
Propriedade pública DTE Obtém o objeto de extensibilidade de nível superior.
Propriedade pública Extender[String] (Herdado de Reference2.)
Propriedade pública Extender[String] Infraestrutura. Somente para uso interno da Microsoft.
Propriedade pública ExtenderCATID (Herdado de Reference2.)
Propriedade pública ExtenderCATID Infraestrutura. Somente para uso interno da Microsoft.
Propriedade pública ExtenderNames (Herdado de Reference2.)
Propriedade pública ExtenderNames Infraestrutura. Somente para uso interno da Microsoft.
Propriedade pública Identity (Herdado de Reference2.)
Propriedade pública Identity Obtém o identificador exclusivo da referência.
Propriedade pública Isolated Obtém ou define se a referência COM é isolada, ou seja, não é registrado com o Windows.
Propriedade pública MajorVersion (Herdado de Reference2.)
Propriedade pública MajorVersion Obtém o número de versão principal da referência.
Propriedade pública MinorVersion (Herdado de Reference2.)
Propriedade pública MinorVersion Obtém o número de versão secundária da referência.
Propriedade pública Name (Herdado de Reference2.)
Propriedade pública Name Obtém o nome do objeto.
Propriedade pública Path (Herdado de Reference2.)
Propriedade pública Path Obtém o caminho para o arquivo de referência.
Propriedade pública PublicKeyToken (Herdado de Reference2.)
Propriedade pública PublicKeyToken Obtém a chave pública token para uma referência fortemente assinada.
Propriedade pública RefType Obtém o tipo de referência: assembly, COM ou nativo.
Propriedade pública Resolved Obtém se a referência atual foi resolvida.
Propriedade pública RevisionNumber (Herdado de Reference2.)
Propriedade pública RevisionNumber Obtém o número de revisão da referência.
Propriedade pública RuntimeVersion (Herdado de Reference2.)
Propriedade pública RuntimeVersion Obtém a versão do tempo de execução contra a qual a referência foi criada.Isso é aplicável somente.NET referências.
Propriedade pública SourceProject (Herdado de Reference2.)
Propriedade pública SourceProject Obtém um Project o objeto se a referência é um projeto.Caso contrário, retornará Nothing (um objeto nulo).
Propriedade pública SpecificVersion Obtém ou define se apenas uma versão específica da referência é usada.
Propriedade pública StrongName (Herdado de Reference2.)
Propriedade pública StrongName Obtém se a referência é assinada com um par de chaves pública/particular.
Propriedade pública SubType Define ou obtém o subtipo do assembly.
Propriedade pública Type (Herdado de Reference2.)
Propriedade pública Type Obsolete.Incluído somente para compatibilidade com versões anteriores.Use RefType em vez disso.
Propriedade pública Version (Herdado de Reference2.)
Propriedade pública Version Obtém a versão da referência especificada.

Início

Métodos

  Nome Descrição
Método público Remove() (Herdado de Reference2.)
Método público Remove() Remove a referência a partir do References objeto que contém o proprietário.

Início

Comentários

Reference3 define os novos parâmetros a seguintes:

Aliases

AutoReferenced

Isolated

RefType

SpecificVersion

Exemplos

O exemplo a seguir adiciona duas referências para abrir Visual Basic ou Visual C# project. Em seguida, chama uma função, GetRefTypeName, para exibir o tipo de referência e chama uma função, ReportReferences, para exibir as propriedades de referência adicional. Para executar este exemplo como um suplemento, consulte Como: compilar e Executar a automação de exemplos de Código do modelo de objeto.

Os caminhos de padrão para as referências adicionadas são: < raiz da instalação >\Program Files\Microsoft.NET\Primary Interop Assemblies para adodb.dll, e < raiz da instalação >\Program Files\Common Files\SpeechEngines\Microsoft para spcommon.dll. Substitua o < caminho > no exemplo com esses ou outros caminhos de arquivo apropriado.

Imports VSLangProj
Imports VSLangProj2
Imports VSLangProj80
Public Sub OnConnection(ByVal application As Object,_
 ByVal connectMode As ext_ConnectMode, ByVal addInInst As Object, _
 ByRef custom As Array) Implements IDTExtensibility2.OnConnection
    applicationObject = CType(application, DTE2)
    addInInstance = CType(addInInst, AddIn)
    AddNewReference(applicationObject)
End Sub
Sub AddNewReference(ByVal dte As DTE2)
    Dim aProject As Project
    Dim aVSProject As VSProject2
    aProject = applicationObject.Solution.Projects.Item(1)
    aVSProject =_
 CType(applicationObject.Solution.Projects.Item(1).Object, VSProject2)
    ' Add an Assembly reference and display its type and additional
    ' information.
    Dim newRef As Reference3
    ' Replace <file path> with an actual path.
    newRef = aVSProject.References.Add("<file path>\adodb.dll")
    MsgBox("The " & newRef.Name() & " added, is of type:" & vbCr _
    & GetRefTypeName(newRef))
    MsgBox("A report on " & newRef.Name() & ":" & vbCr & _
    ReportReferences(newRef))
    ' Add a COM reference and display its type and a report.
    ' Replace <file path> with an actual path.
    newRef = aVSProject.References.Add("<file path>\spcommon.dll")
    MsgBox("The " & newRef.Name() & " added, is of type:" & vbCr _
    & GetRefTypeName(newRef))
    MsgBox("A report on " & newRef.Name() & ":" & vbCr & _
    ReportReferences(newRef))
End Sub
Private Function GetRefTypeName(ByVal ref As Reference3) _
    As String
    Dim type As String
    Select Case ref.Type
        Case prjReferenceType.prjReferenceTypeActiveX
            type = "COM"
         Case prjReferenceType.prjReferenceTypeAssembly
            type = "Assembly"
    End Select
    Return type
End Function
Function ReportReferences(ByVal aRef As Reference3) As String
    Dim report As String = ""
    Dim type As String
    ' Each entry in the ArrayList contains a label and a value.
    Dim ht As System.Collections.ArrayList = _
    New System.Collections.ArrayList
    With aRef
        ht.Add(New String() {"Name", .Name})
        ht.Add(New String() {"Description", .Description})
        ht.Add(New String() {"Version",  -
        String.Format("{0}.{1}.{2}.{3}", _
        .MajorVersion, .MinorVersion, .BuildNumber, .RevisionNumber)})
        ht.Add(New String() {"Location", .ContainingProject.FullName})
            Select Case .Type
            Case prjReferenceType.prjReferenceTypeActiveX
                type = "COM"
            Case prjReferenceType.prjReferenceTypeAssembly
                type = "Assembly"
            End Select
            ht.Add(New String() {"Type", type})
            ht.Add(New String() {"Culture", .Culture})
    End With
    Dim datas() As String
    For Each datas In ht
        report &= datas(0) & ControlChars.Tab & datas(1) & _
        ControlChars.CrLf
    Next
    Return report
End Function
using System.Windows.Forms;
using VSLangProj;
using VSLangProj2;
using VSLangProj80;
public void OnConnection(object application,
 ext_ConnectMode connectMode, object addInInst, ref Array custom)
{
    applicationObject = (DTE2)application;
    addInInstance = (AddIn)addInInst;
    AddNewReference(((DTE2)applicationObject));
}

public void AddNewReference(DTE2 dte)
{
    Project aProject = null;
    VSProject2 aVSProject = null;
    aProject = applicationObject.Solution.Projects.Item(1);
    aVSProject = 
((VSProject2)(applicationObject.Solution.Projects.Item(1).Object));
    // Add an Assembly reference and display its type and a report.
    Reference3 newRef = null;
    // Replace <file path> with an actual file path.
    newRef = ((Reference3)(aVSProject.References.Add(@"
<file path>\adodb.dll")));
    MessageBox.Show("The " + newRef.Name + " added, is of type:" 
+ "\n" + GetRefTypeName(newRef));
    MessageBox.Show("A report on " + newRef.Name + ":" + "\n" 
+ ReportReferences(newRef)); 
    // Add a COM reference and display its type and a report.
    // Replace <file path> with an actual file path.
    newRef = ((Reference3)(aVSProject.References.Add(@"
<file path>\spcommon.dll")));
    MessageBox.Show("The " + newRef.Name + " added, is of type:" 
+ "\n" + GetRefTypeName(newRef));
    MessageBox.Show("A report on " + newRef.Name + ":" + "\n" 
+ ReportReferences(newRef)); 
}
private string GetRefTypeName(Reference3 refIdent)
{
    string type = null;
    switch (refIdent.Type)
    {
     case prjReferenceType.prjReferenceTypeActiveX:
        type = "COM";
        break;
    case prjReferenceType.prjReferenceTypeAssembly:
        type = "Assembly";
        break;
    }
    return type;
}
public string ReportReferences(Reference3 aRef)
{
    string report = "";
    string type = null;
    // Each entry in the ArrayList contains a label and a value.
    System.Collections.ArrayList ht = 
new System.Collections.ArrayList();
    VSLangProj.Reference temp = aRef;
    ht.Add(new string[] { "Name", temp.Name });
    ht.Add(new string[] { "Description", temp.Description });
   ht.Add(new string[] { "Version", string.Format("{0}.{1}.{2}.{3}"
, temp.MajorVersion, temp.MinorVersion, 
temp.BuildNumber, temp.RevisionNumber) });
    ht.Add(new string[] { "Location", 
temp.ContainingProject.FullName });
    switch (temp.Type)
    {
        case prjReferenceType.prjReferenceTypeActiveX:
            type = "COM";
            break;
        case prjReferenceType.prjReferenceTypeAssembly:
            type = "Assembly";
            break;
    }
    ht.Add(new string[] { "Type", type });
    ht.Add(new string[] { "Culture", temp.Culture });
    string[] datas = null;
    foreach (string[] temp1 in ht)
    {
        datas = temp1; 
        report += datas[0] + "\t" + datas[1] + "\n";
    }
    return report;
}

Consulte também

Referência

Namespace VSLangProj80

Reference