Compartir a través de


Reference3 (Interfaz)

Extiende la interfaz Reference2 del espacio de nombres VSLangProj2.

Espacio de nombres:  VSLangProj80
Ensamblado:  VSLangProj80 (en VSLangProj80.dll)

Sintaxis

'Declaración
<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

El tipo Reference3 expone los siguientes miembros.

Propiedades

  Nombre Descripción
Propiedad pública Aliases Obtiene o establece los nombres con alias para la referencia especificada.Esta propiedad solo se aplica a Visual C#.
Propiedad pública AutoReferenced Obtiene si el compilador hace referencia automáticamente a la referencia.
Propiedad pública BuildNumber Obtiene el número de compilación de la referencia.
Propiedad pública Collection Obtiene una colección de References.
Propiedad pública ContainingProject Obtiene el objeto Project que contiene la referencia.
Propiedad pública CopyLocal Obtiene o establece si se copia la referencia en la ruta de acceso de la bandeja local.
Propiedad pública Culture Obtiene la cadena de referencia cultural de una referencia.
Propiedad pública Description Obtiene una descripción de texto de la referencia.
Propiedad pública DTE Obtiene el objeto de extensibilidad de nivel superior.
Propiedad pública Extender Infraestructura. Sólo para uso interno de Microsoft.
Propiedad pública ExtenderCATID Infraestructura. Sólo para uso interno de Microsoft.
Propiedad pública ExtenderNames Infraestructura. Sólo para uso interno de Microsoft.
Propiedad pública Identity Obtiene el identificador único de la referencia.
Propiedad pública Isolated Obtiene o establece si la referencia COM está aislada, es decir, no se registró con Windows.
Propiedad pública MajorVersion Obtiene el número de versión principal de la referencia.
Propiedad pública MinorVersion Obtiene el número de versión secundaria de la referencia.
Propiedad pública Name Obtiene el nombre del objeto.
Propiedad pública Path Obtiene la ruta de acceso del archivo de referencia.
Propiedad pública PublicKeyToken Obtiene el token de clave pública de una referencia con firma segura.
Propiedad pública RefType Obtiene el tipo de referencia: ensamblado, COM o nativo.
Propiedad pública Resolved Obtiene si la referencia actual se ha resuelto.
Propiedad pública RevisionNumber Obtiene el número de revisión de la referencia.
Propiedad pública RuntimeVersion Obtiene la versión del motor en tiempo de ejecución para la que se compiló la referencia.Esto solo es aplicable a las referencias de .NET.
Propiedad pública SourceProject Obtiene un objeto Project si la referencia es un proyecto.De lo contrario, devuelve Nothing (un objeto null).
Propiedad pública SpecificVersion Obtiene o establece si solo se usa una versión específica de la referencia.
Propiedad pública StrongName Obtiene si la referencia está firmada con un par de claves privada y pública.
Propiedad pública SubType Establece u obtiene el subtipo de ensamblado.
Propiedad pública Type Obsoleto.Se incluye solo para proporcionar compatibilidad con versiones anteriores.Utilice RefType en su lugar.
Propiedad pública Version Obtiene la versión de la referencia especificada.

Arriba

Métodos

  Nombre Descripción
Método público Remove Quita la referencia del objeto References que la contiene.

Arriba

Comentarios

Reference3 define los nuevos parámetros siguientes:

Aliases

AutoReferenced

Isolated

RefType

SpecificVersion

Ejemplos

En el ejemplo siguiente se agregan dos referencias a un proyecto de Visual Basic o Visual C# abierto. A continuación se llama a una función, GetRefTypeName, para mostrar el tipo de referencia y a una función, ReportReferences, para mostrar propiedades de referencia adicionales. Para ejecutar este ejemplo como complemento, vea Cómo: Compilar y ejecutar los ejemplos de código del modelo de objetos de automatización.

Las rutas de acceso predeterminadas de las referencias agregadas son: <raíz de instalación>\Archivos de programa\Microsoft.NET\Primary Interop Assemblies for adodb.dll y <raíz de instalación>\Archivos de programa\Common Files\SpeechEngines\Microsoft for spcommon.dll. En el ejemplo, reemplace <file path> por éstas u otras rutas de acceso a archivos apropiadas.

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

Vea también

Referencia

VSLangProj80 (Espacio de nombres)

Reference