コード例 #1
0
        protected override void Dispose(bool disposing)
        {
            foreach (ExportLifetimeContext <IWorkspaceContextHandler> handler in _handlers)
            {
                handler.Dispose();
            }

            _context  = null;
            _handlers = Array.Empty <ExportLifetimeContext <IWorkspaceContextHandler> >();
        }
コード例 #2
0
        public void Initialize(IWorkspaceProjectContext context)
        {
            Requires.NotNull(context, nameof(context));

            if (_context != null)
            {
                throw new InvalidOperationException();
            }

            _context = context;
        }
コード例 #3
0
        public void Initialize(IWorkspaceProjectContext context)
        {
            Requires.NotNull(context, nameof(context));

            if (_context != null)
                throw new InvalidOperationException("Already initialized.");

            _context = context;

            EnsureInitialized();
        }
コード例 #4
0
        public void Initialize_InitializesHandlers()
        {
            IWorkspaceProjectContext?result = null;
            var handler = IWorkspaceContextHandlerFactory.ImplementInitialize((c) => { result = c; });

            var applyChangesToWorkspace = CreateInstance(handlers: handler);
            var context = IWorkspaceProjectContextMockFactory.Create();

            applyChangesToWorkspace.Initialize(context);

            Assert.Same(context, result);
        }
コード例 #5
0
        public async Task <IWorkspaceProjectContextAccessor?> CreateProjectContextAsync(ConfiguredProject project)
        {
            Requires.NotNull(project, nameof(project));

            ProjectContextInitData data = await GetProjectContextInitDataAsync(project);

            if (data.IsInvalid())
            {
                return(null);
            }

            object?hostObject = _project.Services.HostObject;

            IWorkspaceProjectContext?context = await CreateProjectContextHandlingFaultAsync(data, hostObject);

            if (context == null)
            {
                return(null);
            }

            return(new WorkspaceProjectContextAccessor(data.WorkspaceProjectContextId, context));
        }
コード例 #6
0
        private static MetadataReferenceItemHandler CreateInstance(UnconfiguredProject?project = null, IWorkspaceProjectContext?context = null)
        {
            project ??= UnconfiguredProjectFactory.Create();

            var handler = new MetadataReferenceItemHandler(project);

            if (context != null)
            {
                handler.Initialize(context);
            }

            return(handler);
        }
コード例 #7
0
        private static ProjectFilePathAndDisplayNameEvaluationHandler CreateInstance(ProjectConfiguration?configuration = null, IImplicitlyActiveDimensionProvider?implicitlyActiveDimensionProvider = null, IWorkspaceProjectContext?context = null)
        {
            var project = ConfiguredProjectFactory.ImplementProjectConfiguration(configuration ?? ProjectConfigurationFactory.Create("Debug|AnyCPU"));

            implicitlyActiveDimensionProvider ??= IImplicitlyActiveDimensionProviderFactory.Create();

            var handler = new ProjectFilePathAndDisplayNameEvaluationHandler(project, implicitlyActiveDimensionProvider);

            if (context != null)
            {
                handler.Initialize(context);
            }

            return(handler);
        }