Amss.Boilerplate.Persistence.Impl.Configuration.PersistenceContainerExtension.RegisterSpecification C# (CSharp) Method

RegisterSpecification() private method

private RegisterSpecification ( Type specificationType, IUnityContainer container ) : void
specificationType System.Type
container IUnityContainer
return void
        private void RegisterSpecification(Type specificationType, IUnityContainer container)
        {
            var resulType =
                specificationType.GetInterfaces()
                .Single(
                    t => t.IsGenericType && t.GetGenericTypeDefinition() == typeof(ISpecification<>))
                .GetGenericArguments()
                .Single();
            var queryDataType = specificationType;
            var interfaceType = typeof(IQueryRepositoryCommand<,>).MakeGenericType(queryDataType, resulType);
            var commandType = typeof(SpecificationCommand<>).MakeGenericType(resulType);
            container.RegisterType(interfaceType, commandType);
        }