C#6.0具有字符串插值-一个很好的功能,用于格式化字符串,例如:
var name = "John";
WriteLine($"My name is {name}");
该示例转换为
var name = "John";
WriteLine(String.Format("My name is {0}", name));
从本地化的角度来看,最好存储类似以下的字符串:
"My name is {name} {middlename} {surname}"
比String.Format表示法:
"My name is {0} {1} {2}"
如何使用字符串插值进行.NET本地化?是否有一种将$“ ...”放入资源文件的方法?还是应该像“ ... {name}”那样存储字符串并以某种方式即时插值?
PS这个问题不是关于“如何制作string.FormatIt扩展名”(有很多这样的库,SO答案等)。这个问题是关于Roslyn扩展(在“本地化”上下文中用于“字符串插值”)(都是MS .NET词汇中的术语)或动态用法(例如Dylan提出)的问题。