我要为异常消息使用字符串:
$"Your file size cannot exceeded from {AppSetting.MaxFileSize}"
但是我想将其放在ResourceFile中:
"ExceededFileSizeException": $"Your file size cannot exceeded from {AppSetting.MaxFileSize}"
制作此字符串并从代码中读取它的最佳方法是什么?
答案 0 :(得分:2)
这是字符串格式命令的一种全新表示形式。如果要将字符串原样移动到资源文件中,则编译器以后将不对其进行格式化(确保由于上下文变得未知而已在编译时出现问题-输入AppSetting.MaxFileSize应该从哪里来?)
“经典”算法是:
string.Format("Your file size cannot exceeded from {0}", AppSetting.MaxFileSize)
如果以这种方式格式化,则可以将模板字符串移动到资源文件中,然后format方法将起到同样的作用。
答案 1 :(得分:0)
这是我通常要做的
var templateDictionary = new Dictionary<string, string>();
string yourSetting = "mysettings";
//templateDictionary.Add("AppSetting.MaxFileSize", AppSetting.MaxFileSize); // sample
templateDictionary.Add("AppSetting.MaxFileSize", yourSetting);
var inputText = "Your file size cannot exceeded from {AppSetting.MaxFileSize}";
var text = Regex.Replace(inputText, @"\{(.+?)\}", m => templateDictionary["AppSetting.MaxFileSize"]);
我创建了一个扩展方法,可以替换资源文件字符串中的变量。