Partager via


Reference3, interface

Étend l'interface Reference2 de l'espace de noms VSLangProj2.

Espace de noms :  VSLangProj80
Assembly :  VSLangProj80 (dans VSLangProj80.dll)

Syntaxe

'Déclaration
<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

Le type Reference3 expose les membres suivants.

Propriétés

  Nom Description
Propriété publique Aliases Obtient ou définit les noms d'alias de la référence spécifiée.Cette propriété s'applique uniquement à Visual C#.
Propriété publique AutoReferenced Obtient l'information selon laquelle la référence est automatiquement référencée ou non par le compilateur.
Propriété publique BuildNumber Obtient le numéro de build de la référence.
Propriété publique Collection Obtient une collection de References.
Propriété publique ContainingProject Obtient le Project qui contient la référence.
Propriété publique CopyLocal Obtient ou définit l'information indiquant si la référence est copiée ou non dans le chemin bin local.
Propriété publique Culture Obtient la chaîne Culture d'une référence.
Propriété publique Description Obtient un texte de description de la référence.
Propriété publique DTE Obtient l'objet d'extensibilité de niveau supérieur.
Propriété publique Extender Infrastructure. Réservé à un usage interne Microsoft.
Propriété publique ExtenderCATID Infrastructure. Réservé à un usage interne Microsoft.
Propriété publique ExtenderNames Infrastructure. Réservé à un usage interne Microsoft.
Propriété publique Identity Obtient l'identificateur unique de la référence.
Propriété publique Isolated Obtient ou définit l'information indiquant si la référence COM est isolée, autrement dit si elle n'est pas inscrite auprès de Windows.
Propriété publique MajorVersion Retourne le numéro de version majeure de la référence.
Propriété publique MinorVersion Obtient le numéro de version mineure de la référence.
Propriété publique Name Obtient le nom de l'objet.
Propriété publique Path Obtient le chemin d'accès au fichier de référence.
Propriété publique PublicKeyToken Obtient le jeton de clé publique à partir d'une référence signée avec un nom fort.
Propriété publique RefType Obtient le type de référence : assembly, COM ou natif.
Propriété publique Resolved Obtient l'information selon laquelle la référence actuelle a été résolue ou non.
Propriété publique RevisionNumber Obtient le numéro de révision de la référence.
Propriété publique RuntimeVersion Obtient la version du runtime par rapport à laquelle la référence a été générée.Cela s'applique uniquement aux références .NET.
Propriété publique SourceProject Obtient un objet Project si la référence est un projet.Sinon, retourne Nothing (objet null).
Propriété publique SpecificVersion Obtient ou définit l'information selon laquelle seule une version spécifique de la référence est utilisée.
Propriété publique StrongName Obtient une valeur indiquant si la référence est signée à l'aide d'une paire de clés publique/privée.
Propriété publique SubType Définit ou obtient le sous-type d'assembly.
Propriété publique Type Obsolète.Inclus à des fins de compatibilité descendante uniquement.Utilisez plutôt RefType.
Propriété publique Version Obtient la version de la référence spécifiée.

Début

Méthodes

  Nom Description
Méthode publique Remove Supprime la référence de l'objet References qui la contient.

Début

Notes

Reference3 définit les nouveaux paramètres suivants :

Aliases

AutoReferenced

Isolated

RefType

SpecificVersion

Exemples

L'exemple suivant ajoute deux références à un projet Visual Basic ou Visual C# ouvert. Il appelle ensuite une fonction, GetRefTypeName, pour afficher le type référence et une fonction, ReportReferences, pour afficher des propriétés de référence supplémentaires. Pour exécuter cet exemple comme un complément, consultez Comment : compiler et exécuter les exemples de code du modèle objet Automation.

Les chemins d'accès par défaut pour les références ajoutées sont : <racine d'installation>\Program Files\Microsoft.NET\Primary Interop Assemblies pour adodb.dll et <racine d'installation>\Program Files\Common Files\SpeechEngines\Microsoft pour spcommon.dll. Dans l'exemple, remplacez <chemin d'accès au fichier> par ceux-ci ou par d'autres chemins appropriés.

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

Voir aussi

Référence

VSLangProj80, espace de noms

Reference