Пример #1
0
 protected P_StorageOpCtxBase(PersistenceEfCoreDataContext <TEfDbContext> dataCtx, TEfDbContext efCtx)
     : base(outerDependencies: dataCtx.EnsureNotNull(nameof(dataCtx)).Value)
 {
     efCtx.EnsureNotNull(nameof(efCtx));
     //
     _dataCtx     = dataCtx;
     _efCtxGetter = null;
     _efCtxLazy   = new DisposableLazy <TEfDbContext>(value: efCtx, ownsValue: false);
 }
Пример #2
0
        public void WhenDispose_ThenValueIsDisposed()
        {
            var disposable = new Mock<IDisposable>();
            var lazy = new DisposableLazy<IDisposable>(() => disposable.Object);
            // ReSharper disable UnusedVariable
            var temp = lazy.Value; // force value to be created.
            // ReSharper restore UnusedVariable

            lazy.Dispose();

            disposable.Verify(d => d.Dispose());
        }
Пример #3
0
 protected override void Dispose(bool explicitDispose)
 {
     if (explicitDispose)
     {
         _efCtxLazy?.Dispose();
     }
     _dataCtx     = null;
     _efCtxLazy   = null;
     _efCtxGetter = null;
     //
     base.Dispose(explicitDispose);
 }
Пример #4
0
 protected override void Dispose(bool explicitDispose)
 {
     if (explicitDispose)
     {
         _dependencyScopeLazy?.Dispose();
         _outerServiceProviderHandler?.Dispose();
     }
     _dependencyScopeLazy         = null;
     _outerServiceProviderHandler = null;
     _outerDependencies           = null;
     //
     base.Dispose(explicitDispose);
 }
Пример #5
0
        public HeifStreamIO(Stream stream, bool ownsStream = false)
        {
            Validate.IsNotNull(stream, nameof(stream));

            this.stream                  = stream;
            this.ownsStream              = ownsStream;
            this.heifReaderHandle        = new DisposableLazy <SafeCoTaskMemHandle>(CreateHeifReader);
            this.heifWriterHandle        = new DisposableLazy <SafeCoTaskMemHandle>(CreateHeifWriter);
            this.streamBuffer            = new byte[MaxBufferSize];
            this.getPositionDelegate     = GetPosition;
            this.readDelegate            = Read;
            this.seekDelegate            = Seek;
            this.waitForFileSizeDelegate = WaitForFileSize;
            this.writeDelegate           = Write;
        }
Пример #6
0
 void P_CtorInitializer(IDependencyExporter exporter, bool ownsDependencyExporter = default, IServiceProvider outerServiceProvider = default, object owner = default)
 {
     exporter.EnsureNotNull(nameof(exporter));
     //
     _exporter = exporter.ToValueHolder(ownsDependencyExporter);
     _owner    = owner;
     //
     _resolutionModelLazy =
         new DisposableLazy <IDependencyResolutionModel <DependencyScope> >(
             factory: () => new DependencyResolutionModel <DependencyScope>(scope: this, handlerChainSource: ReadDA(ref _exporter, considerDisposeRequest: true).Value.ExportDependencies()),
             ownsValue: true);
     //
     _newDependencyInstancesDisposeRegistry = new DisposeRegistry();
     //
     _runningResolutionsSpinLock   = new PrimitiveSpinLock();
     _runningResolutionsUniqueness = new HashSet <IDependencyResolutionContext>(comparer: ReferenceEqualityComparer <IDependencyResolutionContext> .Instance);
     _runningResolutionsSequence   = new List <IDependencyResolutionContext>();
     //
     _serviceProviderApi = outerServiceProvider ?? new P_ServiceProviderApi(scope: this);
 }
Пример #7
0
 public PersistenceEfCoreDataContext(IPersistenceDataContextProvider <IPersistenceDataContext <TEfDbContext> > provider, DbContextOptions <TEfDbContext> efDbContextOptions, ILogger logger)
     : base(outerDependencies: provider.EnsureNotNull(nameof(provider)).Value)
 {
     efDbContextOptions.EnsureNotNull(nameof(efDbContextOptions));
     if (!efDbContextOptions.IsFrozen)
     {
         throw
             new ArgumentException(
                 message: $"EF context options must be frozen (see {nameof(DbContextOptions)}.{nameof(DbContextOptions.IsFrozen)}) before using by this component.{Environment.NewLine}\tComponent:{this.FmtStr().GNLI2()}",
                 paramName: nameof(efDbContextOptions));
     }
     //
     _provider           = provider;
     _efDbContextOptions = efDbContextOptions;
     _initializationLock = new SemaphoreSlim(initialCount: 1, maxCount: 1);
     _isInitialized      = false;
     _efCtxLazy          = new DisposableLazy <TEfDbContext>(factory: () => P_CreateAndAdjustEfDbContext(isReadOnly: false), ownsValue: true);
     _logger             = logger;
     _txScopes           = ImmutableStack <PersistenceEfCoreDataContextTxScope> .Empty;
 }
Пример #8
0
 protected HeifWriter()
 {
     this.heifWriterHandle = new DisposableLazy <SafeCoTaskMemHandle>(CreateHeifWriter);
     this.writerErrors     = new WriterErrors();
     this.writeDelegate    = Write;
 }
 static CtorFactoryDependencyHandler()
 {
     __DependencyInstanceCtor =
         new DisposableLazy <Func <TDependencyInstance> >(() => ActivationUtilities.RequireConstructor <TDependencyInstance>());
 }
Пример #10
0
 static EonJsonUtilities()
 {
     __DefaultSerializer = new DisposableLazy <JsonSerializer>(factory: CreateDefaultSerializer, ownsValue: true);
 }
Пример #11
0
 public IsolatedStorageContainer(bool perDomain)
 {
     // ReSharper disable ConvertClosureToMethodGroup because would cause this problem: http://stackoverflow.com/q/9113791/7011
     LazyStorage = new DisposableLazy<IsolatedStorageFile>(() => CreateIsolatedStorage(perDomain));
     // ReSharper restore ConvertClosureToMethodGroup
 }
Пример #12
0
 static CtorFactoryDependencyHandler()
 {
     __DependencyInstanceCtor =
         new DisposableLazy <Func <TArg1, TArg2, TArg3, TDependencyInstance> >(() => ActivationUtilities.RequireConstructor <TArg1, TArg2, TArg3, TDependencyInstance>(arg1: default));
 }
Пример #13
0
 protected DependencySupport(IServiceProvider outerServiceProvider = default, IDependencySupport outerDependencies = default)
 {
     _outerDependencies           = outerDependencies;
     _dependencyScopeLazy         = new DisposableLazy <IDependencyScope>(factory: P_DependencyScopeLazyInitializer);
     _outerServiceProviderHandler = outerServiceProvider is null ? null : new ServiceProviderHandler(serviceProvider: outerServiceProvider);
 }
Пример #14
0
 protected override void OnDeserialized(StreamingContext context)
 {
     base.OnDeserialized(context);
     //
     _dependencyScopeLazy = new DisposableLazy <IDependencyScope>(factory: P_DependencyScopeLazyInitializer);
 }