Экранирующие аргументы для строки.Форматирование в многострочной дословной строке C #
-
28-09-2019 - |
Вопрос
string template = @"
{
argument1 = ""{0}"";
argument2 = {1};
}";
Когда я форматирую его как обычную строку с помощью string .Формат, естественно, я получаю исключение из-за того, что входная строка была не в правильном формате.Я попытался экранировать аргументы, как это рекомендуется в документации msdn, например "{{0}}" и даже "{{{0}}}", но я все равно получаю то же исключение.Есть какие-нибудь идеи о том, как отформатировать такую строку?
Спасибо!
P.S.[редактировать] моя исходная строка предназначена для генерации файла сценария 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.Формат (scenarioHeaderTemplate, 10, 10, 10);
Решение
Проблема заключается в открывающих и закрывающих фигурных скобках.Вам нужно заключить их в кавычки, иначе Format подумает, что вы вводите спецификатор параметра.
string template = @"
{{
argument1 = ""{0}"";
argument2 = {1};
}}";