首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法用Autofac解析NameValueCollection

无法用Autofac解析NameValueCollection
EN

Stack Overflow用户
提问于 2010-03-05 08:19:21
回答 1查看 641关注 0票数 3

我正在使用Autofac 2.1.12来处理我的依赖注入,并且遇到了一个特定的问题。我似乎无法解决NameValueCollection依赖关系。

考虑以下代码片段:

代码语言:javascript
复制
class Foo
{
    public Foo(NameValueCollection collection) { }
}

static class Run
{
    public static void Main()
    {
        var builder = new ContainerBuilder();
        builder.RegisterType<NameValueCollection>();
        builder.RegisterType<Foo>();

        using (var scope = builder.Build())
            scope.Resolve<Foo>();
    }
}

它将与未处理的DependencyResolutionException崩溃:

检测到循环组件依赖关系: Foo -> System.Collections.Specialized.NameValueCollection -> System.Collections.Specialized.NameValueCollection.

但是,如果我将NameValueCollection替换为任何其他类型,则代码可以正常工作。

我是在做什么烦人的事情吗?我缺少的NameValueCollection类型有什么特别之处吗?或者这是Autofac本身的问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-03-05 08:55:56

这是故意的。请参阅自动毛

Autofac会自动选择具有从容器中获得的参数最多的构造函数。

尝试像这样注册NameValueCollection (但不确定这是否有效):

代码语言:javascript
复制
builder.RegisterType<NameValueCollection>().UsingConstructor();

如果那不起作用,试试

代码语言:javascript
复制
builder.Register(c => new NameValueCollection());
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2385370

复制
相关文章

相似问题

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