Поделиться через


Reference3 - интерфейс

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

Пространство имен:  VSLangProj80
Сборка:  VSLangProj80 (в VSLangProj80.dll)

Синтаксис

'Декларация
<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

Тип Reference3 предоставляет следующие члены.

Свойства

  Имя Описание
Открытое свойство Aliases Получает или задает псевдонимы для указанной ссылки.Это свойство применяется только в Visual C#.
Открытое свойство AutoReferenced Получает значение, указывающее, сделана ли ссылка компилятором автоматически.
Открытое свойство BuildNumber (Унаследовано от Reference2.)
Открытое свойство BuildNumber Получает номер построения ссылки.
Открытое свойство Collection (Унаследовано от Reference2.)
Открытое свойство Collection Получает коллекцию объектов References.
Открытое свойство ContainingProject (Унаследовано от Reference2.)
Открытое свойство ContainingProject Получает объект Project, содержащий ссылку.
Открытое свойство CopyLocal (Унаследовано от Reference2.)
Открытое свойство CopyLocal Получает или задает значение, указывающее, копируется ли ссылка в локальную папку Bin.
Открытое свойство Culture (Унаследовано от Reference2.)
Открытое свойство Culture Получает строку языка и региональных параметров ссылки.
Открытое свойство Description (Унаследовано от Reference2.)
Открытое свойство Description Получает текстовое описание ссылки.
Открытое свойство DTE (Унаследовано от Reference2.)
Открытое свойство DTE Возвращает объект расширения верхнего уровня.
Открытое свойство Extender[String] (Унаследовано от Reference2.)
Открытое свойство Extender[String] Инфраструктура. Только для внутреннего использования Майкрософт.
Открытое свойство ExtenderCATID (Унаследовано от Reference2.)
Открытое свойство ExtenderCATID Инфраструктура. Только для внутреннего использования Майкрософт.
Открытое свойство ExtenderNames (Унаследовано от Reference2.)
Открытое свойство ExtenderNames Инфраструктура. Только для внутреннего использования Майкрософт.
Открытое свойство Identity (Унаследовано от Reference2.)
Открытое свойство Identity Возвращает уникальный идентификатор ссылки.
Открытое свойство Isolated Получает или задает значение, указывающее, является ли ссылка COM изолированной, т. е. не зарегистрированной в Windows.
Открытое свойство MajorVersion (Унаследовано от Reference2.)
Открытое свойство MajorVersion Получает основной номер версии ссылки.
Открытое свойство MinorVersion (Унаследовано от Reference2.)
Открытое свойство MinorVersion Получает дополнительный номер версии ссылки.
Открытое свойство Name (Унаследовано от Reference2.)
Открытое свойство Name Возвращает имя объекта.
Открытое свойство Path (Унаследовано от Reference2.)
Открытое свойство Path Получает путь к файлу ссылки.
Открытое свойство PublicKeyToken (Унаследовано от Reference2.)
Открытое свойство PublicKeyToken Получает токен открытого ключа из строго подписанной ссылки.
Открытое свойство RefType Получает тип ссылки: сборка, COM или собственная ссылка.
Открытое свойство Resolved Получает значение, указывающее, была ли разрешена текущая ссылка.
Открытое свойство RevisionNumber (Унаследовано от Reference2.)
Открытое свойство RevisionNumber Получает номер редакции ссылки.
Открытое свойство RuntimeVersion (Унаследовано от Reference2.)
Открытое свойство RuntimeVersion Получает версию среды выполнения, в которой собрана ссылка.Это применимо только к ссылкам .NET.
Открытое свойство SourceProject (Унаследовано от Reference2.)
Открытое свойство SourceProject Получает объект Project, если ссылка является проектом.В противном случае возвращается значение Nothing (пустой объект).
Открытое свойство SpecificVersion Получает или задает значение, указывающее, используется ли только определенная версия ссылки.
Открытое свойство StrongName (Унаследовано от Reference2.)
Открытое свойство StrongName Получает значение, указывающее, подписана ли ссылка парой открытого и закрытого ключа.
Открытое свойство SubType Задает или получает подтип сборки.
Открытое свойство Type (Унаследовано от Reference2.)
Открытое свойство Type Является устаревшей.Реализовано исключительно для обратной совместимости.Взамен рекомендуется использовать RefType.
Открытое свойство Version (Унаследовано от Reference2.)
Открытое свойство Version Получает версию указанной ссылки.

В начало страницы

Методы

  Имя Описание
Открытый метод Remove() (Унаследовано от Reference2.)
Открытый метод Remove() Удаляет ссылку из объекта References, в котором она содержится.

В начало страницы

Заметки

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

Aliases

AutoReferenced

Isolated

RefType

SpecificVersion

Примеры

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

Пути по умолчанию для добавляемых ссылок: <корневая папка установки>\Program Files\Microsoft.NET\Primary Interop Assemblies для adodb.dll и <корневая папка установки>\Program Files\Common Files\SpeechEngines\Microsoft для spcommon.dll. Вместо <пути к файлу> в примере подставьте эти или другие подходящие пути.

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

См. также

Ссылки

VSLangProj80 - пространство имен

Reference