Exemple #1
0
 internal override AbstractPersistentStorageService GetStorageService(OptionSet options, IMefHostExportProvider exportProvider, IPersistentStorageLocationService locationService, IPersistentStorageFaultInjector?faultInjector, string relativePathBase)
 => new SQLitePersistentStorageService(
     options,
     exportProvider.GetExports <SQLiteConnectionPoolService>().Single().Value,
     locationService,
     exportProvider.GetExports <IAsynchronousOperationListenerProvider>().Single().Value.GetListener(FeatureAttribute.PersistentStorage),
     faultInjector);
Exemple #2
0
 public MefWorkspaceServices(IMefHostExportProvider host, Workspace workspace)
 {
     _exportProvider = host;
     _workspace      = workspace;
     _services       = host.GetExports <IWorkspaceService, WorkspaceServiceMetadata>()
                       .Concat(host.GetExports <IWorkspaceServiceFactory, WorkspaceServiceMetadata>()
                               .Select(lz => new Lazy <IWorkspaceService, WorkspaceServiceMetadata>(() => lz.Value.CreateService(this), lz.Metadata)))
                       .ToImmutableArray();
 }
Exemple #3
0
        private IEnumerable <string> GetSupportedLanguages()
        {
            if (_languages == null)
            {
                var list = _exportProvider.GetExports <ILanguageService, LanguageServiceMetadata>().Select(lz => lz.Metadata.Language).Concat(
                    _exportProvider.GetExports <ILanguageServiceFactory, LanguageServiceMetadata>().Select(lz => lz.Metadata.Language))
                           .Distinct()
                           .ToImmutableArray();

                Interlocked.CompareExchange(ref _languages, list, null);
            }

            return(_languages);
        }
Exemple #4
0
 internal override AbstractPersistentStorageService GetStorageService(
     IMefHostExportProvider exportProvider,
     IPersistentStorageLocationService locationService,
     IPersistentStorageFaultInjector?faultInjector
     ) =>
 new SQLitePersistentStorageService(
     exportProvider.GetExports <SQLiteConnectionPoolService>().Single().Value,
     locationService,
     faultInjector
     );
Exemple #5
0
        internal override AbstractPersistentStorageService GetStorageService(
            OptionSet options, IMefHostExportProvider exportProvider, IPersistentStorageLocationService locationService, IPersistentStorageFaultInjector?faultInjector, string relativePathBase)
        {
            var threadingContext = exportProvider.GetExports <IThreadingContext>().Single().Value;

            return(new MockCloudCachePersistentStorageService(
                       locationService,
                       relativePathBase,
                       cs =>
            {
                if (cs is IAsyncDisposable asyncDisposable)
                {
                    threadingContext.JoinableTaskFactory.Run(
                        () => asyncDisposable.DisposeAsync().AsTask());
                }
                else if (cs is IDisposable disposable)
                {
                    disposable.Dispose();
                }
            }));
        }
Exemple #6
0
 public T GetGlobalService <T>()
     where T : class
 {
     return(_hostServices.GetExports <T>().FirstOrDefault()?.Value);
 }
 public static IEnumerable <TExtension> GetExportedValues <TExtension>(this IMefHostExportProvider provider)
 => provider.GetExports <TExtension>().Select(l => l.Value);
 public static TExtension GetExportedValue <TExtension>(this IMefHostExportProvider provider)
 => provider.GetExports <TExtension>().Single().Value;
 private T GetGlobalService <T>()
     where T : class
 {
     return(_exportProvider.GetExports <T>().FirstOrDefault()?.Value);
 }
Exemple #10
0
 internal override AbstractPersistentStorageService GetStorageService(OptionSet options, IMefHostExportProvider exportProvider, IPersistentStorageLocationService locationService, IPersistentStorageFaultInjector?faultInjector, string relativePathBase)
 => new SQLitePersistentStorageService(options, exportProvider.GetExports <SQLiteConnectionPoolService>().Single().Value, locationService, faultInjector);