【发布时间】:2017-05-02 19:12:53
【问题描述】:
我正在注册要为接口创建的实现。此实现构造函数具有三个参数:
public ProfileImageService(ISqlConnection connection, string localStorageLocation, string serverPath)
我已经像这样注册了 ISqlConnection:
c.Register<Data.ISqlConnection, Data.TsqlConnection>(setup: Setup.With(openResolutionScope: true));
但是,当我像这样注册 ProfileImageService 时:
c.Register<Data.Services.Profile.IImageService, Data.Services.Profile.ProfileImageService>(Made.Of(() => new Data.Services.Profile.ProfileImageService(Arg.Index<Data.ISqlConnection>(0), Arg.Index<string>(1), Arg.Index<string>(2)), requestIgnored =>c.Resolve<Data.ISqlConnection>(), requestIgnored => localImageStoragePath, requestIgnored => localImageUrl));
我收到以下错误:
Message=State 是使用(可能是注入)项目所必需的 Abc.Data.TsqlConnection。要启用项目使用,您可以指定 容器.With(规则 => rules.WithItemToExpressionConverter(YOUR_ITEM_TO_EXPRESSION_DELEGATE))。
我已阅读此 SpecifyDependencyAndPrimitiveValues 并尝试像他们一样对其进行修改,但他们的示例仅显示了原语或依赖项,而不是两者,而且我找不到它们在没有编译错误的情况下混合的语法。谁能给我一些关于如何注册这个实例的指导,指定两个字符串的值和依赖项的值?
【问题讨论】:
-
你使用什么版本的 DryIoc?
标签: c# asp.net-web-api dependency-injection dryioc