Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Autofac注入空_C#_.net_Autofac - Fatal编程技术网

C# Autofac注入空

C# Autofac注入空,c#,.net,autofac,C#,.net,Autofac,我对.NET 3.5的Autofac 2.5.2.830有一个非常奇怪的问题: I userbuilder.RegisterAssemblyTypes注册程序集中的类型: builder.RegisterAssemblyTypes("My.*.dll").Where(x => x.Name.EndsWith("Service")) .AsImplementedInterfaces(); 我有几个类依赖于IC

我对.NET 3.5的Autofac 2.5.2.830有一个非常奇怪的问题: I user
builder.RegisterAssemblyTypes
注册程序集中的类型:

builder.RegisterAssemblyTypes("My.*.dll").Where(x => x.Name.EndsWith("Service"))
                                         .AsImplementedInterfaces();
我有几个类依赖于
IConfigService
。该接口的具体实现者的一个实例被注入到它们中,但在类上被注入
null

对我来说,这看起来像是一种错误,因为我可以使用断点使它消失。然而,即使这是不确定的:有时,当我在类中设置一个断点,通常注入
null
时,错误也会消失,有时甚至在插入断点时也会注入
null
。在先前创建的其中一个类中设置断点并依赖于
IConfigService
会导致将值而不是
null
注入有问题的类中。即使从构建器中删除一个完全不相关的注册,也会导致错误消失一次。
然而,有一件事似乎是不变的:总是同一个类接收
null

我不知道从哪里开始解决这个问题。这样的事情大家都知道吗?
null
注入的原因可能是什么

更新
哦,天哪,这太愚蠢了

构造函数如下所示:

public EmailNotifier(IConfigurationService configService)
{
    _mailServerAddress = _configService.Get(Resources.MailServerAddress,
                                            Resources.DefaultSenderAddress);
    _configService = configService;
}
运行时,这在构造函数的第一行给了我一个
NullReferenceException
,因为
\u configService
null
。看起来,当我设置断点时,有时检查
configService
是否为
null
,有时检查
\u configService
是否为null。正因为如此,有时我会被注入
null
,有时则不会

摘要

这不是Autofac的问题,因为从未注入
null
configService
总是有一个值。

您能为“接收空值的同一类”发布一些代码吗?尤其是构造函数

如果你在构造器中设置了一个断点,你能确认空值是可以看到的吗?不是说它会在以后的某个地方被覆盖吗


我的猜测是类中的某个地方出了问题。

您能为“接收空值的同一类”发布一些代码吗?尤其是构造函数。如果你在构造器中设置了一个断点,你能确认空值是可以看到的吗?不是说它会在以后的某个地方被覆盖吗?我猜课堂上某个地方出了问题。@Stuart:谢谢你的评论。它让我剥离了ctor,这样我就可以把它复制到so,这样我就发现了错误。请查看更新…;-)不,让我们把它作为一个答案:)(我自己做了好几次……虽然通常是因为我没有把引用复制到成员变量上),我相信有一个公平的机会,其他人也会用谷歌搜索同样的问题:)这不是“那么愚蠢”——这是人类的状况@斯图尔特:谢谢你让我感觉好一点…;-)@丹尼尔呸!你让我担心了一会儿:)