次の方法で共有


Reference3 インターフェイス

VSLangProj2 名前空間の Reference2 インターフェイスを拡張します。

名前空間:  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 参照を local 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 (null オブジェクト) を返します。
パブリック プロパティ 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# プロジェクトに 2 つの参照を追加します。次に関数 GetRefTypeName を呼び出して参照型を表示し、関数 ReportReferences を呼び出して別の参照プロパティを表示します。このサンプル コードをアドインとして実行するには、「方法 : オートメーション オブジェクト モデルのコード例をコンパイルおよび実行する」を参照してください。

追加する参照の既定のパスは、adodb.dll の場合は <installation root>\Program Files\Microsoft.NET\Primary Interop Assemblies で、spcommon.dll の場合は <installation root>\Program Files\Common Files\SpeechEngines\Microsoft です。例の <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;
}

参照

関連項目

VSLangProj80 名前空間

Reference