Reference3 Интерфейс

Определение

Расширяет интерфейс Reference2 пространства имен VSLangProj2.

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
Производный
Атрибуты
Реализации

Примеры

В следующем примере добавляются две ссылки на открытый Visual Basic или Visual C# проект. Затем он вызывает функцию Жетрефтипенаме для вывода ссылочного типа и вызывает функцию Репортреференцес для вывода дополнительных свойств ссылки. Чтобы запустить этот пример в качестве надстройки, см. статью как скомпилировать и запустить примеры кода объектной модели автоматизации.

Пути по умолчанию для добавленных ссылок: <installation root> \Program Филес\микрософт.нет\примари Interop сборки для adodb.dll и <installation root> \Program Files\Common филес\спиченгинес\микрософт для spcommon.dll. Замените <file path> в примере этими или другими соответствующими путями к файлам.

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

Комментарии

Reference3 определяет следующие новые параметры:

Aliases

AutoReferenced

Isolated

RefType

SpecificVersion

Свойства

Aliases

Получает или задает псевдонимы для указанной ссылки. Это свойство применимо только к Visual C#.

AutoReferenced

Получает значение, указывающее, сделана ли ссылка компилятором автоматически.

BuildNumber

Получает номер построения ссылки.

Collection

Возвращает коллекцию объектов References.

ContainingProject

Получает объект Project, содержащий ссылку.

CopyLocal

Получает или задает значение, указывающее, копируется ли ссылка в локальную папку Bin.

Culture

Получает строку языка и региональных параметров ссылки.

Description

Получает текстовое описание ссылки.

DTE

Возвращает объект расширения верхнего уровня.

Extender[String]

Только для внутреннего применения корпорацией Майкрософт.

ExtenderCATID

Только для внутреннего применения корпорацией Майкрософт.

ExtenderNames

Только для внутреннего применения корпорацией Майкрософт.

Identity

Возвращает уникальный идентификатор ссылки.

Isolated

Получает или задает значение, указывающее, является ли ссылка COM изолированной, т. е. не зарегистрированной в Windows.

MajorVersion

Получает основной номер версии ссылки.

MinorVersion

Получает дополнительный номер версии ссылки.

Name

Возвращает имя объекта.

Path

Получает путь к файлу ссылки.

PublicKeyToken

Получает токен открытого ключа из строго подписанной ссылки.

RefType

Получает тип ссылки: сборка, COM или собственная ссылка.

Resolved

Получает значение, указывающее, была ли разрешена текущая ссылка.

RevisionNumber

Получает номер редакции ссылки.

RuntimeVersion

Получает версию среды выполнения, в которой собрана ссылка. Это применимо только к ссылкам .NET.

SourceProject

Получает объект Project, если ссылка является проектом. В противном случае возвращается Nothing (объект null).

SpecificVersion

Получает или задает значение, указывающее, используется ли только определенная версия ссылки.

StrongName

Получает значение, указывающее, подписана ли ссылка парой открытого и закрытого ключа.

SubType

Задает или получает подтип сборки.

Type

Является устаревшей. Реализовано исключительно для обратной совместимости. Используйте вместо этого RefType.

Version

Получает версию указанной ссылки.

Методы

Remove()

Удаляет ссылку из объекта References, в котором она содержится.

Применяется к