Reference3 Schnittstelle
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Erweitert die Reference2-Schnittstelle des VSLangProj2-Namespaces.
public interface class Reference3 : VSLangProj2::Reference2
public interface class Reference3 : VSLangProj2::Reference2
__interface Reference3 : VSLangProj2::Reference2
[System.Runtime.InteropServices.Guid("5021602E-2025-4299-88D2-0A92E8B41ADF")]
[System.Runtime.InteropServices.TypeLibType(4160)]
public interface Reference3 : VSLangProj2.Reference2
[<System.Runtime.InteropServices.Guid("5021602E-2025-4299-88D2-0A92E8B41ADF")>]
[<System.Runtime.InteropServices.TypeLibType(4160)>]
type Reference3 = interface
interface Reference2
Public Interface Reference3
Implements Reference2
- Abgeleitet
- Attribute
- Implementiert
Beispiele
Im folgenden Beispiel werden zwei Verweise auf ein geöffnetes-oder-Projekt hinzugefügt Visual Basic Visual C# . Anschließend wird die Funktion "getreftykname" aufgerufen, um den Verweistyp anzuzeigen, und die Funktion "Report Report Items" wird aufgerufen, um zusätzliche Verweis Eigenschaften anzuzeigen. Informationen zum Ausführen dieses Beispiels als Add-in finden Sie unter Gewusst wie: Kompilieren und Ausführen der Code Beispiele für das Automatisierungs Objektmodell.
Die Standard Pfade für die hinzugefügten Verweise lauten: <installation root> \Programme\Microsoft.NET\Primary Interopassemblys für adodb.dll und <installation root> \Programme\Gemeinsame dateien\redner engines\microsoft für spcommon.dll. Ersetzen Sie <file path> 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;
}
Hinweise
Reference3 definiert die folgenden neuen Parameter:
Eigenschaften
| Aliases |
Ruft die Aliasnamen für den angegebenen Verweis ab oder legt Sie fest. Diese Eigenschaft gilt nur für Visual c#. |
| AutoReferenced |
Ruft ab, ob vom Compiler automatisch auf den Verweis verwiesen wird. |
| BuildNumber |
Ruft die Buildnummer des Verweises ab. |
| Collection |
Ruft eine Auflistung von References ab. |
| ContainingProject |
Ruft das ab, das Project den Verweis enthält. |
| CopyLocal |
Ruft ab oder legt fest, ob der Verweis in den lokalen bin-Pfad kopiert wird. |
| Culture |
Ruft die Kultur Zeichenfolge eines Verweises ab. |
| Description |
Ruft eine Textbeschreibung des Verweises ab. |
| DTE |
Ruft das Erweiterbarkeitsobjekt der obersten Ebene ab. |
| Extender[String] |
Nur Microsoft-interne Verwendung. |
| ExtenderCATID |
Nur Microsoft-interne Verwendung. |
| ExtenderNames |
Nur Microsoft-interne Verwendung. |
| Identity |
Ruft den eindeutigen Bezeichner des Verweises ab. |
| Isolated |
Ruft ab oder legt fest, ob der com-Verweis isoliert ist, d. h. nicht bei Windows registriert ist. |
| MajorVersion |
Ruft die Hauptversionsnummer des Verweises ab. |
| MinorVersion |
Ruft die neben Versionsnummer des Verweises ab. |
| Name |
Ruft den Namen des Objekts ab. |
| Path |
Ruft den Pfad zur Verweis Datei ab. |
| PublicKeyToken |
Ruft das Token des öffentlichen Schlüssels von einem stark signierten Verweis ab. |
| RefType |
Ruft den Verweistyp ab: Assembly, com oder nativ. |
| Resolved |
Ruft ab, ob der aktuelle Verweis aufgelöst wurde. |
| RevisionNumber |
Ruft die Revisionsnummer des Verweises ab. |
| RuntimeVersion |
Ruft die Version der Laufzeit ab, für die der Verweis erstellt wurde. Dies gilt nur für .net-Verweise. |
| SourceProject |
Ruft ein-Objekt ab, Project Wenn der Verweis ein Projekt ist. Andernfalls wird "Nothing" zurückgegeben (ein NULL-Objekt). |
| SpecificVersion |
Ruft ab oder legt fest, ob nur eine bestimmte Version des Verweises verwendet wird. |
| StrongName |
Ruft ab, ob der Verweis mit einem Paar aus öffentlichem und privatem Schlüssel signiert ist. |
| SubType |
Legt den Untertyp der Assembly fest oder ruft ihn ab. |
| Type |
Veraltet. Nur aus Gründen der Abwärtskompatibilität eingeschlossen. Verwenden Sie stattdessen RefType. |
| Version |
Ruft die Version des angegebenen Verweises ab. |
Methoden
| Remove() |
Entfernt den Verweis aus dem References Objekt, in dem es enthalten ist. |