Экранирующие аргументы для строки.Форматирование в многострочной дословной строке C #

StackOverflow https://stackoverflow.com/questions/3893604

  •  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};   
          }}"; 
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top