首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >注入2个同类型参数

注入2个同类型参数
EN

Stack Overflow用户
提问于 2015-03-26 01:26:07
回答 1查看 472关注 0票数 1

构造函数中有一个具有两个相同类型参数的类。

我使用autofac注入依赖项,但无法找到注入相同类型的2个参数的方法。注射时有什么方法可以说明吗?

代码语言:javascript
复制
class test
{
    test(Iconnection con1, Iconnection con2)
    { }
} 

我想通过autofac注入con1con2,但无法做到。

EN

回答 1

Stack Overflow用户

发布于 2015-03-26 01:53:28

在注册您的ResolvedParameter类时,可以使用Test构造:

代码语言:javascript
复制
builder.RegisterType<Test>()
       .As<ITest>()
       .WithParameter(
         new ResolvedParameter(
           (pi, ctx) => pi.ParameterType == typeof(IConnection) && pi.Name == "con1",
           (pi, ctx) => [code resolving con1 from ctx]))
       .WithParameter(
         new ResolvedParameter(
           (pi, ctx) => pi.ParameterType == typeof(IConnection) && pi.Name == "con2",
           (pi, ctx) => [code resolving con2 from ctx]));

或者,如果您正在处理相同类型的配置不同的实例,我建议将构造函数签名更改为接受接受参数以区分连接的工厂类型(例如IConnectionFactory)。例如:

代码语言:javascript
复制
interface IConnectionFactory
{
    IConnection CreateConnection(string name);
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29269543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档