다음을 통해 공유


Reference3.SourceProject 속성

참조가 프로젝트이면 Project 개체를 가져오고그렇지 않으면 Nothing(null 개체)을 반환합니다.

네임스페이스:  VSLangProj80
어셈블리:  VSLangProj80(VSLangProj80.dll)

구문

‘선언
ReadOnly Property SourceProject As Project
Project SourceProject { get; }
property Project^ SourceProject {
    Project^ get ();
}
abstract SourceProject : Project
function get SourceProject () : Project

속성 값

형식: EnvDTE.Project
Project 개체를 반환합니다.

설명

두 번째 프로젝트에서 작성된 개체를 사용하려면 첫 번째 프로젝트에서 두 번째 프로젝트에 대한 참조를 포함하고 있어야 합니다.이런 경우 SourceProject 속성은 둘째 프로젝트에 대한 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 보안

  • 직접 실행 호출자의 경우 완전히 신뢰합니다. 이 멤버는 부분적으로 신뢰할 수 있는 코드에서 사용할 수 없습니다. 자세한 내용은 부분 신뢰 코드에서 라이브러리 사용을 참조하십시오.

참고 항목

참조

Reference3 인터페이스

SourceProject 오버로드

VSLangProj80 네임스페이스