public void Unload() { KnownProjectBase.MetadataStore = null; ViewNodeManager.EnsureLayoutRequired -= new EventHandler(this.ViewNodeManager_EnsureLayoutRequired); XamlPerformanceEvents.UnregisterEvents(); this.services.RemoveService(typeof(AnnotationService)); this.annotationService.Shutdown(); IProjectTypeManager service = this.services.GetService <IProjectTypeManager>(); IDocumentTypeManager documentTypeManager = this.services.GetService <IDocumentTypeManager>(); IWindowService windowService = this.services.GetService <IWindowService>(); IOptionsDialogService optionsDialogService = this.services.GetService <IOptionsDialogService>(); this.services.GetService <ICommandService>().RemoveTarget(this.commandTarget); this.commandTarget = null; foreach (Tool tool in this.tools) { this.designerContext.ToolManager.Remove(tool); } this.services.RemoveService(typeof(ToolManager)); this.services.RemoveService(typeof(SnappingEngine)); this.services.RemoveService(typeof(IAttachedPropertyMetadataFactory)); this.services.RemoveService(typeof(IOutOfBrowserDeploymentService)); this.services.GetService <IDesignerDefaultPlatformService>().Dispose(); this.services.RemoveService(typeof(IDesignerDefaultPlatformService)); this.services.RemoveService(typeof(IHelpService)); windowService.RemoveResourceDictionary(this.designSurfaceIcons); optionsDialogService.OptionsPages.Remove(this.unitsOptionsPage); optionsDialogService.OptionsPages.Remove(this.artboardOptionsPage); optionsDialogService.OptionsPages.Remove(this.viewOptionsPage); optionsDialogService.OptionsPages.Remove(this.annotationsOptionsPage); this.sharedColorSpaceManager.Unload(); if (windowService.PaletteRegistry["Designer_ProjectPane"] != null) { ProjectPane content = (ProjectPane)windowService.PaletteRegistry["Designer_ProjectPane"].Content; } SceneViewModel.UnregisterPipelineTasks(this.services.GetService <ISchedulingService>()); foreach (IProjectType projectType in this.projectTypes) { service.Unregister(projectType); } foreach (IDocumentType documentType in this.documentTypes) { documentTypeManager.Unregister(documentType); } this.projectTypes.Clear(); this.documentTypes.Clear(); this.designerContext.Uninitialize(); this.designerContext = null; IAssemblyService assemblyService = this.services.GetService <IAssemblyService>(); assemblyService.UnregisterPlatformResolver("Silverlight"); assemblyService.UnregisterPlatformResolver(".NETFramework"); this.silverLightAssemblyResolver.Dispose(); }