首页 > 解决方案 > 将 Ninject ToConstant 转换为简单的注入器实现

问题描述

此 Ninject 代码使用ToConstant.

Func<Type, IValidator> validatorFactory = type =>
{
    var valType = typeof(Validator<>).MakeGenericType(type);
    return (IValidator)kernel.Get(valType);
};

kernel.Bind<IValidationProvider>().ToConstant(new ValidationProvider(validatorFactory));

标签: c#dependency-injectionninjectsimple-injector

解决方案


RegisterInstance是等效于 Ninject 的简单注射器ToConstant

Func<Type, IValidator> validatorFactory = type =>
{
    var valType = typeof(Validator<>).MakeGenericType(type);
    return (IValidator)container.GetInstance(valType);
};

container.RegisterInstance<IValidationProvider>(new ValidationProvider(validatorFactory));

推荐阅读