Bifrost.FluentValidation.Commands.CommandValidatorProvider.BuildDynamicallyDiscoveredBusinessValidator C# (CSharp) Метод

BuildDynamicallyDiscoveredBusinessValidator() приватный Метод

private BuildDynamicallyDiscoveredBusinessValidator ( Type commandType, IDictionary typeAndAssociatedValidatorTypes ) : ICommandBusinessValidator
commandType System.Type
typeAndAssociatedValidatorTypes IDictionary
Результат ICommandBusinessValidator
        ICommandBusinessValidator BuildDynamicallyDiscoveredBusinessValidator(Type commandType, IDictionary<Type, IEnumerable<Type>> typeAndAssociatedValidatorTypes)
        {
            Type[] typeArgs = { commandType };
            var closedValidatorType = typeof(ComposedCommandBusinessValidator<>).MakeGenericType(typeArgs);

            var propertyTypeAndValidatorInstances = new Dictionary<Type, IEnumerable<IValidator>>();
            foreach (var key in typeAndAssociatedValidatorTypes.Keys)
            {
                var validatorTypes = typeAndAssociatedValidatorTypes[key];
                if (validatorTypes.Any())
                    propertyTypeAndValidatorInstances.Add(key, validatorTypes.Select(v => _container.Get(v) as IValidator).ToArray());

            }
            return Activator.CreateInstance(closedValidatorType, propertyTypeAndValidatorInstances) as ICommandBusinessValidator;
        }
#pragma warning restore 1591 // Xml Comments