public IAggregateReadModel CreateAggregateReadModel(Type aggregateReadModelType)
        {
            if (!aggregateReadModelType.IsAggregateReadModel())
            {
                throw new ArgumentException("Type specified as aggregate read model have to implement interace " + Indicators.Aggregates.ReadModel);
            }

            if (aggregateReadModelType.GetTypeInfo().IsInterface)
            {
                throw new InvalidOperationException("Can't create aggregate read model by interface " + aggregateReadModelType +
                                                    ". Factory must be used for concrete types only. Try check and use mapping interface2concrete");
            }

            var readDomainContextProviderProxy = new ReadableDomainContextProviderProxy(_scopedDomainContextsStore, _domainContextHost);

            var dependencyOverrides = new DependencyOverrides
                {
                    // указываем какие экземпляры использовать при resolve нижеуказанных зависимостей
                    // данные типы зависимостей даже не должны регистророваться в DI-контейнере, т.е. resolve
                    // работает ТОЛЬКО из-за того, что мы явно указываем какие экземпляры для каких типов зависимостей нужно использовать
                    { typeof(IReadableDomainContextProvider), readDomainContextProviderProxy },
                };

            return (IAggregateReadModel)_unityContainer.Resolve(aggregateReadModelType, Mapping.ExplicitlyCreatedAggregateRepositoriesScope, dependencyOverrides);
        }
        public IAggregateReadModel CreateAggregateReadModel(Type aggregateReadModelType)
        {
            if (!aggregateReadModelType.IsAggregateReadModel())
            {
                throw new ArgumentException("Type specified as aggregate read model have to implement interace " + Indicators.Aggregates.ReadModel);
            }

            var readableDomainContextProvider = new ReadableDomainContextProvider(_scopedDomainContextsStore, _domainContextScope);

            var dependencyOverrides = new DependencyOverrides
                {
                    // указываем какие экземпляры использовать при resolve нижеуказанных зависимостей
                    // данные типы зависимостей даже не должны регистророваться в DI-контейнере, т.е. resolve
                    // работает ТОЛЬКО из-за того, что мы явно указываем какие экземпляры для каких типов зависимостей нужно использовать
                    { typeof(IReadableDomainContextProvider), readableDomainContextProvider },
                };

            return (IAggregateReadModel)_unityContainer.Resolve(aggregateReadModelType, Mapping.ExplicitlyCreatedAggregateServicesScope, dependencyOverrides);
        }