在C#多行逐字字符串中转义字符串格式的参数
问题描述:
string template = @"
{
argument1 = ""{0}"";
argument2 = {1};
}";
当我将其格式化为带有string.Format的常用字符串时,我自然会得到输入字符串格式不正确的异常。我尝试在MSDN文档中建议转义参数,如“{{0}}”,甚至“{{{0}}}”,但我仍然得到相同的异常。任何想法如何格式化这样的字符串?在C#多行逐字字符串中转义字符串格式的参数
谢谢!
附注:[编辑]我原来的字符串是用于生成WCAT场景文件:
string scenarioHeaderTemplate = @"
scenario
{{
name = ""WCAT Scenario"";
warmup = {0};
duration = {1};
cooldown = {2};
default
{
version = HTTP11;
setheader
{
name = ""Connection"";
value = ""keep-alive"";
}
statuscode = 200;
close = ka;
}
}}";
,它抛出,如果我尝试的String.format(scenarioHeaderTemplate,10,10,10);
答
问题是打开和关闭大括号。你需要引用那些,或格式会认为你正在开始一个参数说明符。
string template = @"
{{
argument1 = ""{0}"";
argument2 = {1};
}}";
谢谢,但我也试过,还是有同样的例外 – kateroh 2010-10-08 19:27:37
啊...明白了!我不得不逃脱所有大括号。 @“谢谢!” – kateroh 2010-10-08 19:35:38