我正在尝试将 SharpRepository 项目配置为也使用 SimpleInjector IOC 框架作为框架中的 IOC 选项,但我坚持移植一些代码。无法弄清楚如何使用 SimpleInjector 传入 <> 通用接口。
第二个问题/问题是如何使用简单的注入器将通用参数传递到上下文中。
public static void BindSharpRepository(this IKernel kernel,
ISharpRepositoryConfiguration configuration)
{
kernel.Bind(typeof (IRepository<>)).ToMethod(context =>
{
var genericArgs = context.Request.Service.GetGenericArguments();
return RepositoryFactory.GetInstance(genericArgs[0], configuration);
});
kernel.Bind(typeof(IRepository<,>)).ToMethod(context =>
{
var genericArgs = context.Request.Service.GetGenericArguments();
return RepositoryFactory.GetInstance(genericArgs[0],
genericArgs[1], configuration);
});
kernel.Bind(typeof(ICompoundKeyRepository<,,>)).ToMethod(context =>
{
var genericArgs = context.Request.Service.GetGenericArguments();
return RepositoryFactory.GetInstance(genericArgs[0], genericArgs[1],
genericArgs[2], configuration);
});
}