我创建了一个.Net Core API,我引用了一个.Net框架应用程序.引用的应用程序连接到数据库,其连接字符串存储在web.config文件中:
string CONNSTR =ConfigurationManager.ConnectionStrings["SHOPPINGCNN"].ConnectionString;
.Net Core应用程序使用appsettings.json而不是web.config文件.当我运行API并尝试使用引用的应用程序资源时,上面的代码将被触发并返回null,因为.net Core应用程序中不存在web.config文件.解决此问题的最佳解决方案是什么
解决方法
对于.NET Core应用程序,最好的方法是使用
Configuration API.这是一种非常灵活的方式,并且由于提供程序模式,它允许使用不同的源,而不仅是最常见的appsettings.json文件(顺便说一下)只是一个JSON文件,可以随机命名):
- File formats (INI,JSON,and XML)
- Command-line arguments
- Environment variables
- In-memory .NET objects
- An encrypted user store Azure Key Vault
- Custom providers,which you install or create
现在关于ConfigurationManager.起初,.NET Core被迫忘记了这个类 – 它没有被实现和支持,并且想法是通过提供新的Configuration API来完全取代它.
而且,实际情况是ASP.NET Core应用程序不再通过IIS托管(IIS现在主要用作反向代理),因此web.config不再那么有用(除非您仍需要定义的极少数情况) IIS配置特有的参数).
但是,在提供.NET Standard 2.0之后,这个System.Configuration.ConfigurationManager nuget包可用并带回ConfigurationManager类.由于在新的.NET Core 2.0中实现了新的compatibility shim,因此成为可能.
关于你的情况,很难说为什么你有“空”,因为它没有足够的信息: