我有一个monolith项目,我尝试使用Full Framework将一个Web应用程序从ASP.NET转换为ASP.NET Core。 从图中可以看出,两个Web应用程序都引用了类库3.CL3包含业务逻辑,但也包含有关如何读取特定配置的逻辑(到目前为止,从Web.config文件开始)。
由于在ASP.NET Core(基于appsettings.json环境)中读取配置的方式已经改变,我必须重写从CL3读取配置的部分。
这样的场景有可能吗?
#IF CALLED FROM ASP.NET
RETRIEVE CONFIGURATION FROM WEB.CONFIG
#ELSE (CALLED FROM ASP.NET CORE FULL FRAMEWORK)
RETRIEVE CONFIGURATION FROM APPSETTINGS.JSON
答案 0 :(得分:3)
如果您正在进行重构,请尝试从共享DLL中移出配置读取,并提供一个干净的抽象,该抽象没有对特定于框架的资产的隐藏依赖。
您的ASP.NET核心应用程序和经典ASP.NET应用程序可以基于其配置系统创建配置(您可以提供两种不同的配置实现),然后使用您的CL3类并传入配置对象。 / p>
或者,您可以使用ConfigurationBuilder
从appsettings.json和appsettings。{Environment} .json中读取AppSettings和连接字符串,并通过经典的ConfigurationManager
API使其可用。有关如何执行此操作的详细信息,请参阅this blog post。这可以扩展到从json文件配置自定义配置节(经典.NET)。