为什么此赋值语句在.NET Framework中有效但在.NET Core中无效?

Cod*_*eel -7 c# .net-core asp.net-core

这是数据库的连接字符串:

 private string _connString => $"Data Source={Server.MapPath(@"~\Data")}\\PhoneNumbers.sqlite";
Run Code Online (Sandbox Code Playgroud)

我的朋友在.NET Framework程序中使用了这一行并且它有效.我们都在.NET Core中尝试过这种变体,但是这行是一个错误.它没有有用的错误代码.我认为Visual Studio 2017认为这是一个无效的声明.

为什么这是一个错误?

Ant*_*kov 7

字符串插值没有错.

Server.MapPath在.NET Core中不可用.此类(和方法)是特定于IIS的.

ASP .NET Core的重点是使框架服务器不可知,因此引入了几个新的抽象.

您需要使用IHostingEnvironment来解决路径.

博客文章的一个例子.