in EnvDTE.Client/Impl/ProjectModelImpl/SolutionFolderProjectItemImplementation.cs [8:53]
public class SolutionFolderProjectItemImplementation(
[NotNull] DteImplementation dte,
[NotNull] ProjectItemModel projectItemModel,
[NotNull] ProjectImplementation containingProject)
: ProjectItemImplementation(dte, projectItemModel, containingProject)
{
[CanBeNull] private ProjectImplementation _subProjectImplementation;
private ProjectImplementation SubProjectImplementation
{
get
{
if (_subProjectImplementation is null)
{
switch (DteImplementation.DteProtocolModel.ProjectItem_get_Kind.Sync(new ProjectItemRequest(ProjectItemModel)))
{
case ProjectItemKindModel.PhysicalFile:
_subProjectImplementation = null;
break;
case ProjectItemKindModel.Project:
_subProjectImplementation = ImplementationUtil.GetProjectImplementation(
DteImplementation, new ProjectItemModel(ProjectItemModel.Id), this);
break;
case ProjectItemKindModel.PhysicalFolder:
_subProjectImplementation = new ProjectImplementation(DteImplementation, new ProjectItemModel(ProjectItemModel.Id), this);
break;
case ProjectItemKindModel.Unknown:
case ProjectItemKindModel.VirtualDirectory:
default:
return null;
}
}
return _subProjectImplementation;
}
}
public override string Kind => Constants.vsProjectItemKindSolutionItems;
public override object Object => SubProjectImplementation;
public override Project SubProject => SubProjectImplementation;
// ReSharper disable once AssignNullToNotNullAttribute
public override ProjectItems ProjectItems => null;
}