public override void Load(
string filename,
string location,
string name,
uint flags,
ref Guid iidProject,
out int canceled)
{
Debug.Assert(BuildEngine != null);
Debug.Assert(BuildProject != null);
Debug.Assert(BuildProject.FullPath == Path.GetFullPath(filename));
// IT: ProjectInfo needs to be created before loading
// as we will catch assembly reference adding.
//
var langService = Utils.GetService<NemerleLanguageService>(Site);
Debug.Assert(langService != null);
_projectInfo = new ProjectInfo(this, InteropSafeHierarchy, langService, filename, location);
ProjectInfo.Projects.Add(_projectInfo);
base.Load(filename, location, name, flags, ref iidProject, out canceled);
// WAP ask the designer service for the CodeDomProvider corresponding to the project node.
//
// AKhropov: now NemerleFileNode provides these services
//OleServiceProvider.AddService(typeof(SVSMDCodeDomProvider), this.CodeDomProvider, false);
//OleServiceProvider.AddService(typeof(CodeDomProvider), CodeDomProvider.CodeDomProvider, false);
// IT: Initialization sequence is important.
//
ProjectInfo.InitListener();
INemerleLibraryManager libraryManager = Utils.GetService<INemerleLibraryManager>(Site);
if (libraryManager != null)
libraryManager.RegisterHierarchy(InteropSafeHierarchy);
// If this is a WPFFlavor-ed project, then add a project-level DesignerContext service to provide
// event handler generation (EventBindingProvider) for the XAML designer.
OleServiceProvider.AddService(typeof(DesignerContext), DesignerContext, false);
}