Пример #1
0
            public MefLanguageServices(
                MefWorkspaceServices workspaceServices,
                string language)
            {
                this.workspaceServices = workspaceServices;
                this.language          = language;
                var hostServices = (MefHostServices)workspaceServices.HostServices;

                this.services  = hostServices.GetExports <ILanguageService, LanguageServiceMetadata>().Where(lz => lz.Metadata.Language == language).ToImmutableList();
                this.factories = hostServices.GetExports <ILanguageServiceFactory, LanguageServiceMetadata>().Where(lz => lz.Metadata.Language == language).ToImmutableList();
            }
Пример #2
0
        public MefLanguageServices(
            MefWorkspaceServices workspaceServices,
            string language)
        {
            _workspaceServices = workspaceServices;
            _language          = language;

            var hostServices = workspaceServices.HostExportProvider;

            _services = hostServices.GetExports <ILanguageService, LanguageServiceMetadata>()
                        .Concat(hostServices.GetExports <ILanguageServiceFactory, LanguageServiceMetadata>()
                                .Select(lz => new Lazy <ILanguageService, LanguageServiceMetadata>(() => lz.Value.CreateLanguageService(this), lz.Metadata)))
                        .Where(lz => lz.Metadata.Language == language).ToImmutableArray();
        }