Search code examples
c#dependency-injectionninjectsimple-injector

Convert Ninject ToConstant to Simple Injector Implementation


What is the equivalent code in Simpleinjection from this Ninject code using ToConstant.

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

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

Solution

  • RegisterInstance is the Simple Injector equivalent to Ninject's ToConstant:

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