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(); }
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(); }