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 では、次の新しいパラメーターが定義されます。
例
次の例では、開いた 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;
}