【发布时间】:2018-01-07 17:21:55
【问题描述】:
在ms docs Hosting in ASP.NET Core的最后一节中指出:
如果主机是通过直接注入
IStartup构建的 依赖注入容器 而不是调用UseStartup或Configure,可能会出现如下错误:
Unhandled Exception: System.ArgumentException: A valid non-empty application name must be provided.这是因为
applicationName(ApplicationKey)(当前 程序集)需要扫描HostingStartupAttributes。如果应用程序 手动将IStartup注入到依赖注入容器中,添加 使用指定的程序集名称对WebHostBuilder进行以下调用:
WebHost.CreateDefaultBuilder(args)
.UseSetting("applicationName", "<Assembly Name>")
...
我不明白上面第一行粗体是什么意思。您如何将IStartup 直接注入依赖注入容器?这是否意味着将启动实例传递给某处的构造函数(不太可能)?文档指向an example 以获取更多信息,其中使用UseStartup<> 注入语法添加正常启动和注入启动。我看到的唯一区别是注入是由Ihostingstartup 实现调用的,但两者中的任何一个都没有调用“必要的”UseSetting()。上面粗体字是什么意思?
【问题讨论】:
标签: asp.net .net dependency-injection asp.net-core