我正在使用字符串插值方法属性,如 -
const string User = "SomeUser";
const string Admin = "Admin";
.
.
.
[Authorize(Roles = $"{User},{Admin}")]
public IHttpActionResult Get()
但Visual Studio给出了错误 -
属性参数必须是属性参数类型的常量表达式,typeof表达式或数组创建表达式
当我尝试使用“+”进行字符串连接时,它可以工作
[Authorize(Roles = User + "," + Admin)]
public IHttpActionResult Get()
即使我用","
替换','
也会出现同样的错误。
我想知道编译器如何处理字符串插值?
字符串插值转换为string.Format
,这不是编译时常量,因为它需要审查this question以获取更多信息