Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.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# 依赖项注入参数null异常_C#_Asp.net Core_Dependency Injection - Fatal编程技术网

C# 依赖项注入参数null异常

C# 依赖项注入参数null异常,c#,asp.net-core,dependency-injection,C#,Asp.net Core,Dependency Injection,我有一个带有依赖项注入的Startup.cs文件,如下所示: public class Startup : FunctionsStartup { public override void Configure(IFunctionsHostBuilder builder) { builder.Services.Configure<RequestLocalizationOptio

我有一个带有依赖项注入的Startup.cs文件,如下所示:

    public class Startup : FunctionsStartup
    {
        public override void Configure(IFunctionsHostBuilder builder)
        {                       
            builder.Services.Configure<RequestLocalizationOptions>(opts =>
            {
                var supportedCultures = new List<CultureInfo>
                        {
                            new CultureInfo("en-US"),
                            new CultureInfo("es-ES"),
                            new CultureInfo("hi-IN")
                        };
                opts.DefaultRequestCulture = new RequestCulture("en-US");
                opts.SupportedCultures = supportedCultures;
                opts.SupportedUICultures = supportedCultures;
            });         
            builder.Services.AddSingleton<ILocalizationRepository, LocalizationRepository>();
        }
    }
公共类启动:函数启动
{
公共覆盖无效配置(IFunctionsHostBuilder)
{                       
builder.Services.Configure(选项=>
{
var supportedCultures=新列表
{
新文化信息(“美国”),
新文化信息(“es”),
新文化信息(“hi IN”)
};
opts.DefaultRequestCulture=新的RequestCulture(“en-US”);
opts.SupportedCultures=SupportedCultures;
opts.supporteduccultures=支持的文化;
});         
builder.Services.AddSingleton();
}
}
我有以下接口和类“LocalizationRepository”:

    public interface ILocalizationRepository
    {
        string TranslateSetting(string settingName, params int[] additionalParams);
    }
    
    
    public class LocalizationRepository : ILocalizationRepository
    {
        private readonly IStringLocalizer<LocalizationRepository> _localizer;
        public LocalizationRepository(IStringLocalizer<LocalizationRepository> localizer)
        {
            _localizer = localizer ?? throw new ArgumentNullException(nameof(localizer));
        }

        public string TranslateSetting(string settingName, params int[] additionalParams)
        {
            return _localizer.GetString(settingName, additionalParams);
        }
    }
公共接口ILocalizationRepository
{
字符串转换设置(字符串设置名称,参数int[]附加参数);
}
公共类本地化存储库:ILocalizationRepository
{
专用只读IStringLocalizer\u localizer;
公共本地化存储库(IStringLocalizer localizer)
{
_localizer=localizer??抛出新ArgumentNullException(nameof(localizer));
}
公共字符串转换设置(字符串设置名称,参数int[]附加参数)
{
return _localizer.GetString(settingName,additionalParams);
}
}

运行此命令时,我看到ArgumentNullException-值不能为null。(参数“定位器”)。我错过了什么

调用堆栈:

System.ArgumentNullException:
   at Repositories.Localization.LocalizationRepository..ctor (Repositories.Localization, Version=1.0.0.0, Culture=neutral, PublicKeyToken=nullRepositories.Localization, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: D:\a\1\s\Service\Repositories.Localization\LocalizationRepository.csRepositories.Localization, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: 12)
   at lambda_method (Anonymously Hosted DynamicMethods Assembly, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null)
   at DryIoc.Factory+<>c__DisplayClass26_0.<ApplyReuse>b__2 (Microsoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=nullMicrosoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null: D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.csMicrosoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null: 6605)
   at DryIoc.Scope.TryGetOrAdd (Microsoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=nullMicrosoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null: D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.csMicrosoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null: 7849)
   at DryIoc.Scope.GetOrAdd (Microsoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=nullMicrosoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null: D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.csMicrosoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null: 7834)
   at DryIoc.Factory.ApplyReuse (Microsoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=nullMicrosoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null: D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.csMicrosoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null: 6604)
   at DryIoc.Factory.GetExpressionOrDefault (Microsoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=nullMicrosoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null: D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.csMicrosoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null: 6564)
   at DryIoc.ReflectionFactory.CreateExpressionOrDefault (Microsoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=nullMicrosoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null: D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.csMicrosoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null: 7083)
   at DryIoc.Factory.GetExpressionOrDefault (Microsoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=nullMicrosoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null: D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.csMicrosoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null: 6554)
   at DryIoc.ReflectionFactory.CreateExpressionOrDefault (Microsoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=nullMicrosoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null: D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.csMicrosoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null: 7083)
   at DryIoc.Factory.GetExpressionOrDefault (Microsoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=nullMicrosoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null: D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.csMicrosoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null: 6554)
   at DryIoc.Factory.GetDelegateOrDefault (Microsoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=nullMicrosoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null: D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.csMicrosoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null: 6634)
   at DryIoc.Container.ResolveAndCacheDefaultFactoryDelegate (Microsoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=nullMicrosoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null: D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.csMicrosoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null: 211)
   at DryIoc.Container.DryIoc.IResolver.Resolve (Microsoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=nullMicrosoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null: D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.csMicrosoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null: 196)
   at Microsoft.Azure.WebJobs.Script.WebHost.DependencyInjection.ScopedServiceProvider.GetService (Microsoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=nullMicrosoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null: D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\ScopedServiceProvider.csMicrosoft.Azure.WebJobs.Script.WebHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null: 25)
   at Microsoft.Extensions.DependencyInjection.ActivatorUtilities.GetService (Microsoft.Extensions.DependencyInjection.Abstractions, Version=3.1.8.0, Culture=neutral, PublicKeyToken=adb9793829ddae60)
   at lambda_method (Anonymously Hosted DynamicMethods Assembly, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null)
   at Microsoft.Azure.WebJobs.Host.Executors.DefaultJobActivator.CreateInstance (Microsoft.Azure.WebJobs.Host, Version=3.0.23.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35Microsoft.Azure.WebJobs.Host, Version=3.0.23.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35: C:\projects\azure-webjobs-sdk-rqm4t\src\Microsoft.Azure.WebJobs.Host\Executors\DefaultJobActivator.csMicrosoft.Azure.WebJobs.Host, Version=3.0.23.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35: 37)
   at Microsoft.Azure.WebJobs.Host.Executors.DefaultJobActivator.CreateInstance (Microsoft.Azure.WebJobs.Host, Version=3.0.23.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35Microsoft.Azure.WebJobs.Host, Version=3.0.23.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35: C:\projects\azure-webjobs-sdk-rqm4t\src\Microsoft.Azure.WebJobs.Host\Executors\DefaultJobActivator.csMicrosoft.Azure.WebJobs.Host, Version=3.0.23.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35: 32)
   at Microsoft.Azure.WebJobs.Host.Executors.ActivatorInstanceFactory`1+<>c__DisplayClass1_1.<.ctor>b__0 (Microsoft.Azure.WebJobs.Host, Version=3.0.23.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35Microsoft.Azure.WebJobs.Host, Version=3.0.23.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35: C:\projects\azure-webjobs-sdk-rqm4t\src\Microsoft.Azure.WebJobs.Host\Executors\ActivatorInstanceFactory.csMicrosoft.Azure.WebJobs.Host, Version=3.0.23.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35: 20)
   at Microsoft.Azure.WebJobs.Host.Executors.ActivatorInstanceFactory`1.Create (Microsoft.Azure.WebJobs.Host, Version=3.0.23.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35Microsoft.Azure.WebJobs.Host, Version=3.0.23.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35: C:\projects\azure-webjobs-sdk-rqm4t\src\Microsoft.Azure.WebJobs.Host\Executors\ActivatorInstanceFactory.csMicrosoft.Azure.WebJobs.Host, Version=3.0.23.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35: 26)
   at Microsoft.Azure.WebJobs.Host.Executors.FunctionInvoker`2.CreateInstance (Microsoft.Azure.WebJobs.Host, Version=3.0.23.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35Microsoft.Azure.WebJobs.Host, Version=3.0.23.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35: C:\projects\azure-webjobs-sdk-rqm4t\src\Microsoft.Azure.WebJobs.Host\Executors\FunctionInvoker.csMicrosoft.Azure.WebJobs.Host, Version=3.0.23.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35: 44)
   at Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor+ParameterHelper.Initialize (Microsoft.Azure.WebJobs.Host, Version=3.0.23.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35Microsoft.Azure.WebJobs.Host, Version=3.0.23.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35: C:\projects\azure-webjobs-sdk-rqm4t\src\Microsoft.Azure.WebJobs.Host\Executors\FunctionExecutor.csMicrosoft.Azure.WebJobs.Host, Version=3.0.23.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35: 794)
   at Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor+<TryExecuteAsyncCore>d__16.MoveNext (Microsoft.Azure.WebJobs.Host, Version=3.0.23.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35Microsoft.Azure.WebJobs.Host, Version=3.0.23.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35: C:\projects\azure-webjobs-sdk-rqm4t\src\Microsoft.Azure.WebJobs.Host\Executors\FunctionExecutor.csMicrosoft.Azure.WebJobs.Host, Version=3.0.23.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35: 96)
System.ArgumentNullException:
在Repositories.Localization.LocalizationRepository..ctor(Repositories.Localization,Version=1.0.0.0,Culture=neutral,PublicKeyToken=nullRepositories.Localization,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null:D:\a\1\s\Service\Repositories.LocalizationRepositories.csRepositories.Localization,Version=1.0.0.0,Culture=neutral,PublicKeyToken
at lambda_方法(匿名托管DynamicMethods程序集,版本=0.0.0.0,区域性=中立,PublicKeyToken=null)
在DryIoc.Factory+c_uuuu显示器上Class26_0.b_uu2(Microsoft.Azure.WebJobs.Script.WebHost,版本=3.0.0.0,区域性=中性,PublicKeyToken=nullMicrosoft.Azure.WebJobs.Script.WebHost,版本=3.0.0.0,区域性=中性,PublicKeyToken=null:D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.csMicrosoft.Azure.WebJobs.Script.WebHost,版本=3.0.0.0,区域性=中性,PublicKeyTo)肯=空:6605)
在DryIoc.Scope.TryGetOrAdd(Microsoft.Azure.WebJobs.Script.WebHost,版本=3.0.0.0,区域性=中性,PublicKeyToken=nullMicrosoft.Azure.WebJobs.Script.WebHost,版本=3.0.0.0,区域性=中性,PublicKeyToken=null:D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.csMicrosoft.Azure.WebJobs.Script.WebHost,版本=3.0.0.0,区域性=中性,PublicKeyTo)肯=空:7849)
在DryIoc.Scope.GetOrAdd(Microsoft.Azure.WebJobs.Script.WebHost,版本=3.0.0.0,区域性=中性,PublicKeyToken=nullMicrosoft.Azure.WebJobs.Script.WebHost,版本=3.0.0.0,区域性=中性,PublicKeyToken=null:D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.csMicrosoft.Azure.WebJobs.Script.WebHost,版本=3.0.0.0,区域性=中性,PublicKeyTo)肯=空:7834)
在DryIoc.Factory.ApplyReuse(Microsoft.Azure.WebJobs.Script.WebHost,版本=3.0.0.0,区域性=中性,PublicKeyToken=nullMicrosoft.Azure.WebJobs.Script.WebHost,版本=3.0.0.0,区域性=中性,PublicKeyToken=null:D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.csMicrosoft.Azure.WebJobs.Script.WebHost,版本=3.0.0.0,区域性=中性,PublicKeyTo)肯=空:6604)
在DryIoc.Factory.GetExpressionOrderFault中(Microsoft.Azure.WebJobs.Script.WebHost,版本=3.0.0.0,区域性=中性,PublicKeyToken=nullMicrosoft.Azure.WebJobs.Script.WebHost,版本=3.0.0.0,区域性=中性,PublicKeyToken=null:D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.csMicrosoft.Azure.WebJobs.Script.WebHost,版本=3.0.0.0,区域性=中性,PublicKeyTo)ken=null:6564)
在DryIoc.ReflectionFactory.CreateExpressionOrderFault中(Microsoft.Azure.WebJobs.Script.WebHost,版本=3.0.0.0,区域性=中性,PublicKeyToken=nullMicrosoft.Azure.WebJobs.Script.WebHost,版本=3.0.0.0,区域性=中性,PublicKeyToken=null:D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.csMicrosoft.Azure.WebJobs.Script.WebHost,版本=3.0.0.0,区域性=中性,PublicKeyTo)ken=null:7083)
在DryIoc.Factory.GetExpressionOrderFault中(Microsoft.Azure.WebJobs.Script.WebHost,版本=3.0.0.0,区域性=中性,PublicKeyToken=nullMicrosoft.Azure.WebJobs.Script.WebHost,版本=3.0.0.0,区域性=中性,PublicKeyToken=null:D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.csMicrosoft.Azure.WebJobs.Script.WebHost,版本=3.0.0.0,区域性=中性,PublicKeyTo)肯=空:6554)
在DryIoc.ReflectionFactory.CreateExpressionOrderFault中(Microsoft.Azure.WebJobs.Script.WebHost,版本=3.0.0.0,区域性=中性,PublicKeyToken=nullMicrosoft.Azure.WebJobs.Script.WebHost,版本=3.0.0.0,区域性=中性,PublicKeyToken=null:D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.csMicrosoft.Azure.WebJobs.Script.WebHost,版本=3.0.0.0,区域性=中性,PublicKeyTo)ken=null:7083)
在DryIoc.Factory.GetExpressionOrderFault中(Microsoft.Azure.WebJobs.Script.WebHost,版本=3.0.0.0,区域性=中性,PublicKeyToken=nullMicrosoft.Azure.WebJobs.Script.WebHost,版本=3.0.0.0,区域性=中性,PublicKeyToken=null:D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.csMicrosoft.Azure.WebJobs.Script.WebHost,版本=3.0.0.0,区域性=中性,PublicKeyTo)肯=空:6554)
在DryIoc.Factory.GetDelegateOrDefau