Reference3.SourceProject プロパティ
参照先がプロジェクトの場合は、Project オブジェクトを取得します。 それ以外の場合は、Nothing (null オブジェクト) を返します。
名前空間: VSLangProj80
アセンブリ: VSLangProj80 (VSLangProj80.dll 内)
構文
'宣言
ReadOnly Property SourceProject As Project
Get
Project SourceProject { get; }
property Project^ SourceProject {
Project^ get ();
}
abstract SourceProject : Project
function get SourceProject () : Project
プロパティ値
型: EnvDTE.Project
Project オブジェクトを返します。
実装
解説
1 次プロジェクトが、2 次プロジェクトでビルドされたオブジェクトを使用するには、1 次プロジェクトの中に 2 次プロジェクトへの参照が含まれている必要があります。 このような場合、SourceProject プロパティは、2 次プロジェクトの Project オブジェクトを返すことができます。
例
この例では、すべての参照を反復処理し、SourceProject があればその名前を表示します。 このサンプル コードをアドインとして実行するには、「方法 : オートメーション オブジェクト モデルのコード例をコンパイルおよび実行する」を参照してください。 この例を実行する前に、Visual Basic または Visual C# プロジェクトを開いておきます。
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)
DisplaySourceProjectName(applicationObject)
End Sub
Public Sub DisplaySourceProjectName(ByVal dte As DTE2)
' The first project is a Visual Basic or C# project.
Dim vsProject As VSProject2 =_
CType(applicationObject.Solution.Projects.Item(1).Object, _
VSProject2)
Dim aRef As Reference3
Dim refStr As String
refStr = ""
Dim project As EnvDTE.Project
For Each aRef In vsProject.References
project = aRef.SourceProject
If project Is Nothing Then
refStr += (aRef.Name & " has no source project." & vbCr _
& vbCr)
Else
refStr += (aRef.Name & " has a source project named " _
& project.Name & vbCr & vbCr)
End If
Next
MsgBox(refStr)
End Sub
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;
DisplaySourceProjectName(((DTE2)applicationObject));
}
public void DisplaySourceProjectName(DTE2 dte)
{
// The first project is a Visual Basic or C# project.
VSProject2 aProject =
((VSProject2)(applicationObject.Solution.Projects.Item(1).Object));
Reference3 aRef = null;
string refStr = null;
refStr = "";
EnvDTE.Project project = null;
foreach (VSLangProj80.Reference3 temp in aProject.References)
{
aRef = temp;
project = aRef.SourceProject;
if (project == null)
{
refStr += (aRef.Name + " has no source project." + "\n"
+ "\n");
}
else
{
refStr += (aRef.Name + " has a source project named "
+ project.Name + "\n" + "\n");
}
}
MessageBox.Show(refStr);
}
.NET Framework セキュリティ
- 直前の呼び出し元に対する完全な信頼。 このメンバーは、部分的に信頼されているコードから使用することはできません。 詳細については、「部分信頼コードからのライブラリの使用」を参照してください。