Escaping String.Format Placeholder
-
27-10-2019 - |
Pergunta
Eu tenho a seguinte string
"ListId={1CC88B01-E60F-45D1-8B3C-28852574156D}&ID={0}&ContentTypeID=0x01003D458D19EF31D845B3A7727B0F2F8FC8"
Eu gostaria de usá-lo como tal
String.Format("ListId={1CC88B01-E60F-45D1-8B3C-28852574156D}&ID={0}&ContentTypeID=0x01003D458D19EF31D845B3A7727B0F2F8FC8", MyValue)
WHERE MyValue would replace ID={0}
No entanto, isso lança um System.FormatException
.Obviamente, isso se deve ao {1CC88B01-E60F-45D1-8B3C-28852574156D} guid
que usa o valor do marcador string.format
.Agora posso simplesmente dividir a chamada de string string.format()
conforme necessário e concatá-la novamente, mas há alguma maneira de evitar fazer isso "escapando" do valor do marcador de alguma forma?
Solução
Você só precisa dobrar as chaves:
String.Format("ListId={{1CC8...156D}}&ID={0}&...", MyValue)
Outras dicas
Use caracteres duplos {{ou}} para escapá-los.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow