Interfaccia Reference3

Estende l'interfaccia Reference2 dello spazio dei nomi VSLangProj2.

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

Sintassi

'Dichiarazione
<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

Il tipo Reference3 espone i seguenti membri.

Proprietà

  Nome Descrizione
Proprietà pubblica Aliases Ottiene o imposta i nomi con alias relativi al riferimento specificato.Questa proprietà è valida solo per Visual C#.
Proprietà pubblica AutoReferenced Specifica se il compilatore fa automaticamente riferimento al riferimento.
Proprietà pubblica BuildNumber (Ereditato da Reference2)
Proprietà pubblica BuildNumber Recupera il numero di build del riferimento.
Proprietà pubblica Collection (Ereditato da Reference2)
Proprietà pubblica Collection Ottiene un insieme di oggetti References.
Proprietà pubblica ContainingProject (Ereditato da Reference2)
Proprietà pubblica ContainingProject Ottiene l'oggetto Project che contiene il riferimento.
Proprietà pubblica CopyLocal (Ereditato da Reference2)
Proprietà pubblica CopyLocal Ottiene o imposta un valore che indica se il riferimento è copiato nel percorso binario locale.
Proprietà pubblica Culture (Ereditato da Reference2)
Proprietà pubblica Culture Ottiene la stringa delle impostazioni cultura di un riferimento.
Proprietà pubblica Description (Ereditato da Reference2)
Proprietà pubblica Description Ottiene una descrizione del riferimento.
Proprietà pubblica DTE (Ereditato da Reference2)
Proprietà pubblica DTE Ottiene l'oggetto di estensibilità di primo livello.
Proprietà pubblica Extender[String] (Ereditato da Reference2)
Proprietà pubblica Extender[String] Infrastruttura. Solo per utilizzo interno di Microsoft.
Proprietà pubblica ExtenderCATID (Ereditato da Reference2)
Proprietà pubblica ExtenderCATID Infrastruttura. Solo per utilizzo interno di Microsoft.
Proprietà pubblica ExtenderNames (Ereditato da Reference2)
Proprietà pubblica ExtenderNames Infrastruttura. Solo per utilizzo interno di Microsoft.
Proprietà pubblica Identity (Ereditato da Reference2)
Proprietà pubblica Identity Ottiene l'identificatore univoco del riferimento.
Proprietà pubblica Isolated Ottiene o imposta un valore che indica se il riferimento COM è isolato, ovvero non registrato con Windows.
Proprietà pubblica MajorVersion (Ereditato da Reference2)
Proprietà pubblica MajorVersion Ottiene il numero di versione principale del riferimento.
Proprietà pubblica MinorVersion (Ereditato da Reference2)
Proprietà pubblica MinorVersion Ottiene il numero di versione secondario del riferimento.
Proprietà pubblica Name (Ereditato da Reference2)
Proprietà pubblica Name Ottiene il nome dell'oggetto.
Proprietà pubblica Path (Ereditato da Reference2)
Proprietà pubblica Path Ottiene il percorso al file del riferimento.
Proprietà pubblica PublicKeyToken (Ereditato da Reference2)
Proprietà pubblica PublicKeyToken Ottiene il token di chiave pubblica da un riferimento firmato in modo sicuro.
Proprietà pubblica RefType Ottiene il tipo di riferimento: assembly, COM o nativo.
Proprietà pubblica Resolved Stabilisce se il riferimento corrente è stato risolto.
Proprietà pubblica RevisionNumber (Ereditato da Reference2)
Proprietà pubblica RevisionNumber Ottiene il numero di revisione del riferimento.
Proprietà pubblica RuntimeVersion (Ereditato da Reference2)
Proprietà pubblica RuntimeVersion Ottiene la versione del runtime rispetto a cui è stato compilato il riferimento.Questa operazione è valida solo per i riferimenti .NET.
Proprietà pubblica SourceProject (Ereditato da Reference2)
Proprietà pubblica SourceProject Ottiene un oggetto Project se il riferimento è un progetto.In caso contrario, restituisce Nothing (un oggetto null).
Proprietà pubblica SpecificVersion Ottiene o imposta un valore che indica se viene utilizzata solo una versione specifica del riferimento.
Proprietà pubblica StrongName (Ereditato da Reference2)
Proprietà pubblica StrongName Ottiene l'indicazione che stabilisce se il riferimento è firmato con una coppia di chiavi pubblica/privata.
Proprietà pubblica SubType Imposta o ottiene il sottotipo dell'assembly.
Proprietà pubblica Type (Ereditato da Reference2)
Proprietà pubblica Type Obsoleta.Inclusa solo per compatibilità con le versioni precedenti.In alternativa, utilizzare RefType.
Proprietà pubblica Version (Ereditato da Reference2)
Proprietà pubblica Version Ottiene la versione del riferimento specificato.

In alto

Metodi

  Nome Descrizione
Metodo pubblico Remove() (Ereditato da Reference2)
Metodo pubblico Remove() Rimuove il riferimento dall'oggetto References che lo contiene.

In alto

Note

Reference3 definisce i seguenti nuovi parametri:

Aliases

AutoReferenced

Isolated

RefType

SpecificVersion

Esempi

Nell'esempio seguente vengono aggiunti due riferimenti a un progetto aperto di Visual Basic o Visual C#. Viene quindi chiamata una funzione, GetRefTypeName, per visualizzare il tipo di riferimento e un'altra funzione, ReportReferences, per visualizzare proprietà aggiuntive del riferimento. Per eseguire questo esempio come componente aggiuntivo, vedere Procedura: compilare ed eseguire gli esempi di codice del modello a oggetti di automazione.

I percorsi predefiniti per i riferimenti aggiunti sono: <directory radice di installazione>\Programmi\Microsoft.NET\Primary Interop Assemblies per adodb.dll e <directory radice di installazione>\Programmi\File comuni\SpeechEngines\Microsoft per spcommon.dll. Sostituire <percorso file> dell'esempio con questi percorsi di file o altri percorsi appropriati.

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

Vedere anche

Riferimenti

Spazio dei nomi VSLangProj80

Reference