Why do I have to specify the assembly in my app.config but not for my web.config when using custom sections
我的项目中有自定义部分。以下行适用于web.config中的web api项目:
1 2 3 4 5 6 7 8 | ... <sectionGroup name="Project.Models"> <section name="product" type="Project.Models.Configuration.ProductSettings" /> </sectionGroup> </configSections> <Project.Models> <product id="1" /> </Project.Models> |
当我运行单元测试时,我得到以下错误:
0为什么在从我的单元测试app.config引用此程序集时必须指定程序集名称?这解决了这个问题,但不确定为什么需要它。
1 | <section name="product" type="Project.Models.Configuration.ProductSettings, Project.Models" /> |
这取决于执行代码的主机。
如果没有额外的管道,您会发现在配置名称空间的内部工作中,
对于typename参数,您可以在其描述中找到:
0关键部件当前正在执行程序集。对于普通的AppDomain,以及运行单元测试的应用程序(我假设为vs),这似乎从来就不是这样。
另一方面,ASP.NET Web宿主提供了一个内部
这就解释了行为上的差异。建议始终指定程序集名称。在ASP.NET场景中,如果类型参数中存在assemblyname,则它会对