Экранирование аргументов для строки. Формат в многострочной строке C # - PullRequest
11 голосов
/ 08 октября 2010
string template = @"  
          {  
            argument1   = ""{0}"";
            argument2   = {1};  
          }";

Когда я форматирую ее как обычную строку со строкой. Формат, естественно, я получаю исключение, что входная строка была не в правильном формате. Я попытался экранировать аргументы, как это рекомендовано в документации msdn, например, "{{0}}" и даже "{{{0}}}", но я все еще получаю то же исключение. Любые идеи о том, как отформатировать такую ​​строку?

Спасибо! * * 1004

P.S. [Edit] Моя исходная строка предназначена для создания файла сценария 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 (sceneHeaderTemplate, 10, 10, 10);

1 Ответ

31 голосов
/ 08 октября 2010

Проблема в открытых и закрытых скобках. Вам нужно заключить их в кавычки, или Format будет думать, что вы начинаете спецификатор параметра.

string template = @"   
          {{   
            argument1   = ""{0}""; 
            argument2   = {1};   
          }}"; 
...