c# - 将 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));
解决方案
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));
推荐阅读
- r - 从 knitr 输出中删除进度条
- amazon-web-services - Spring Boot - 不同的系统(eureka、zuul、ribbon、nginx)用于什么?
- arrays - 从存储在 React 状态中的对象数组访问属性
- sass - 用于开发和生产的 Grunt-contrib-sass?
- c# - 使用 AJAX 联系服务器上的方法
- regex - 所有有效文档类型标签的正则表达式匹配字符串
- javascript - 在 JavaScript 中格式化 JSON 对象
- ios - 更改标签栏项目的顺序
- r - 无法在 R 中检测到 unicode
- android - gradle 3.2.1 的数据绑定问题