Dependency injection 将某些代码从Ninject转换为StructureMap

Dependency injection 将某些代码从Ninject转换为StructureMap,dependency-injection,structuremap,ninject,Dependency Injection,Structuremap,Ninject,我正在尝试使用Steven的服务层验证解决方案,这在他对一些问题的回答中有概述。不幸的是,我对依赖注入还比较陌生,对Ninject一无所知。在他的代码中,他使用Ninject来完成IoC的工作,但在我的项目中,我使用的是StructureMap。我试图将代码转换为StructureMap语法,但失败了。。。不管怎样,这是Ninject代码: Func<Type, IValidator> validatorFactory = type => { var valType =

我正在尝试使用Steven的服务层验证解决方案,这在他对一些问题的回答中有概述。不幸的是,我对依赖注入还比较陌生,对Ninject一无所知。在他的代码中,他使用Ninject来完成IoC的工作,但在我的项目中,我使用的是StructureMap。我试图将代码转换为StructureMap语法,但失败了。。。不管怎样,这是Ninject代码:

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

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

kernel.Bind<Validator<Product>>().To<ProductValidator>();
以下是我的尝试:

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

container.Configure(x =>
{
    x.For<IValidationProvider>()
        .Use(() => new ValidationProvider(validatorFactory));
    x.For(typeof(Validator<>)).Use(typeof (NullValidator<>));
})

我得到这个错误:

没有为定义默认实例 插入式家庭 Sharwe.Services.Validation.Validator


那么我该如何解决这个问题呢?

您是否可以用更新您的问题,以显示当您收到异常时容器被调用的位置?