Reference3.SourceProject - свойство
Получает объект Project, если ссылка является проектом.В противном случае возвращается значение Nothing (пустой объект).
Пространство имен: 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
- Полное доверие для непосредственно вызывающего метода. Этот член не может быть использован частично доверенным кодом. Дополнительные сведения см. в разделе Использование библиотек из не вполне надежного кода.