Freigeben über


Reference3-Schnittstelle

Erweitert die Reference2-Schnittstelle des VSLangProj2-Namespaces.

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

Syntax

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

Der Reference3-Typ macht die folgenden Member verfügbar.

Eigenschaften

  Name Beschreibung
Öffentliche Eigenschaft Aliases Ruft den Aliasnamen für den angegebenen Verweis ab oder legt ihn fest.Diese Eigenschaft bezieht sich nur auf Visual C#.
Öffentliche Eigenschaft AutoReferenced Ruft ab, ob vom Compiler automatisch auf diesen Verweis verwiesen wird.
Öffentliche Eigenschaft BuildNumber Ruft die Buildnummer des Verweises ab.
Öffentliche Eigenschaft Collection Ruft eine Auflistung von References ab.
Öffentliche Eigenschaft ContainingProject Ruft das Project-Objekt ab, das den Verweis enthält.
Öffentliche Eigenschaft CopyLocal Ruft ab oder legt fest, ob der Verweis in den lokalen Bin-Pfad kopiert wird.
Öffentliche Eigenschaft Culture Ruft die Culture-Zeichenfolge eines Verweises ab.
Öffentliche Eigenschaft Description Ruft eine Textbeschreibung des Verweises ab.
Öffentliche Eigenschaft DTE Ruft das Erweiterbarkeitsobjekt der obersten Ebene ab.
Öffentliche Eigenschaft Extender Infrastruktur. Nur für die interne Verwendung durch Microsoft vorgesehen.
Öffentliche Eigenschaft ExtenderCATID Infrastruktur. Nur für die interne Verwendung durch Microsoft vorgesehen.
Öffentliche Eigenschaft ExtenderNames Infrastruktur. Nur für die interne Verwendung durch Microsoft vorgesehen.
Öffentliche Eigenschaft Identity Ruft den eindeutigen Bezeichner des Verweises ab.
Öffentliche Eigenschaft Isolated Ruft ab oder legt fest, ob der COM-Verweis isoliert, d. h. nicht bei Windows registriert, wird.
Öffentliche Eigenschaft MajorVersion Ruft die Hauptversionsnummer des Verweises ab.
Öffentliche Eigenschaft MinorVersion Ruft die Nebenversionsnummer des Verweises ab.
Öffentliche Eigenschaft Name Ruft den Namen des Objekts ab.
Öffentliche Eigenschaft Path Ruft den Pfad zur Verweisdatei ab.
Öffentliche Eigenschaft PublicKeyToken Ruft das öffentliche Schlüsseltoken aus einem Verweis mit starker Signierung ab.
Öffentliche Eigenschaft RefType Ruft den Typ des Verweises ab: Assembly, COM oder systemeigener Verweis.
Öffentliche Eigenschaft Resolved Ruft ab, ob der aktuelle Verweis aufgelöst wurde.
Öffentliche Eigenschaft RevisionNumber Ruft die Revisionsnummer des Verweises ab.
Öffentliche Eigenschaft RuntimeVersion Ruft die Version der Laufzeit ab, unter der der Verweis erstellt wurde.Bezieht sich nur auf .NET-Verweise.
Öffentliche Eigenschaft SourceProject Ruft ein Project-Objekt ab, wenn es sich bei dem Verweis um ein Projekt handelt.Andernfalls wird Nothing (ein NULL-Objekt) zurückgegeben.
Öffentliche Eigenschaft SpecificVersion Ruft ab oder legt fest, ob nur eine bestimmte Version des Verweises verwendet wird.
Öffentliche Eigenschaft StrongName Stellt fest, ob der Verweis mit einem Schlüsselpaar aus einem öffentlichen und einem privaten Schlüssel signiert ist.
Öffentliche Eigenschaft SubType Legt den Untertyp der Assembly fest oder ruft ihn ab.
Öffentliche Eigenschaft Type Veraltet.Nur aus Gründen der Abwärtskompatibilität enthalten.Verwenden Sie stattdessen RefType.
Öffentliche Eigenschaft Version Ruft die Version des angegebenen Verweises ab.

Zum Seitenanfang

Methoden

  Name Beschreibung
Öffentliche Methode Remove Entfernt den Verweis aus dem References-Objekt, das den Verweis enthält.

Zum Seitenanfang

Hinweise

Durch Reference3 werden die folgenden neuen Parameter definiert:

Aliases

AutoReferenced

Isolated

RefType

SpecificVersion

Beispiele

Im folgenden Beispiel werden einem geöffneten Visual Basic, oder Visual C#-Projekt zwei Verweise hinzugefügt. Anschließend wird die Funktion GetRefTypeName aufgerufen, um den Verweistyp anzuzeigen, und dann die Funktion ReportReferences, um zusätzliche Verweiseigenschaften anzuzeigen. Um dieses Beispiel als Add-In auszuführen, informieren Sie sich unter Gewusst wie: Kompilieren und Ausführen der Codebeispiele für das Automatisierungsobjektmodell.

Die Standardpfade für die hinzugefügten Verweise lauten: <Stammpfad der Installation>\Programme\Microsoft.NET\Primary Interop Assemblies für adodb.dll und <Stammpfad der Installation>\Programme\Gemeinsame Dateien\SpeechEngines\Microsoft für spcommon.dll. Ersetzen Sie <Dateipfad> im Beispiel durch diese oder andere geeignete Dateipfade.

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

Siehe auch

Referenz

VSLangProj80-Namespace

Reference