Bonjour,

Question de gros débutant.

Comment stocker de façon lisible et facile à maintenir une chaîne littérale dans du code C# ?

Je m'explique.

Par exemple, j'ai une chaîne de caractères qui doit contenir ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
TEXTE MIS EN FORME
AVEC RETOURS A LA LIGNE
	ET TABULATION
    ET ESPACES
Des caractères "spéciaux' /@\ youpi
Actuellement, si je veux stocker ça dans mon programme, c'est la croix et la bannière :
Code csharp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
string myString = "TEXTE MIS EN FORME\nAVEC RETOURS A LA LIGNE\n\tET TABULATION\n    ET ESPACES\nDes caractères \"spéciaux' {1} /@\\ youpi";
Et ensuite, à modifier (ajouter une ligne par exemple, refaire l'indentation, etc.) c'est l'horreur totale.
Du coup je passe plus de temps à remettre en forme ma chaîne de caractères dans un sens ou dans l'autre qu'à faire la modification réelle.

En PHP par exemple, il y a une instruction (me souvient plus tout à fait, mais grossomodo, de très loin, ça ressemble à ça :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
$myString = EOD___
TEXTE MIS EN FORME
AVEC RETOURS A LA LIGNE
	ET TABULATION
    ET ESPACES
Des caractères "spéciaux' /@\ youpi
___EOD;

Ou comme la balise CDATA en XML.

J'ai cherché, mais pas trouvé

Il reste la solution pas vraiment pratique qui consiste à passer par un fichier texte, en ressource ou non. Mais c'est vraiment pas pratique à utiliser, et niveau performances, je suis pas certain que ce soit hyper judicieux...

Et là, franchement, j'en peux plus :
Code csharp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
string query = string.Format("<?xml version=\"1.0\"?><request><query><tables><table tablename=\"RepUser\" id=\"{0}\"><table tablename=\"Contact\"><table tablename=\"ContactParticipant\"><table tablename=\"Person\"><table tablename=\"Company\"></table></table></table></table></table></tables><fields><field tablename=\"Contact\" fieldname=\"ExternalID\"/><field tablename=\"Contact\" fieldname=\"Location\"/><field tablename=\"Contact\" fieldname=\"ExternalSynchroDate\"/><field tablename=\"Contact\" fieldname=\"Date\"/><field tablename=\"Contact\" fieldname=\"Time\"/><field tablename=\"Contact\" fieldname=\"EndDate\"/><field tablename=\"Contact\" fieldname=\"EndTime\"/><field tablename=\"Contact\" fieldname=\"Subject\"/><field tablename=\"Contact\" fieldname=\"Text\"/><field tablename=\"Contact\" fieldname=\"Private\"/><field tablename=\"Contact\" fieldname=\"Upd\"/><field tablename=\"Contact\" fieldname=\"UpdTime\"/><field tablename=\"Contact\" fieldname=\"Contact\"/><field tablename=\"Person\" fieldname=\"FirstName\"/><field tablename=\"Person\" fieldname=\"LastName\"/><field tablename=\"Person\" fieldname=\"E-mail1\"/><field tablename=\"Person\" fieldname=\"Tel1\"/><field tablename=\"Person\" fieldname=\"Tel2\"/><field tablename=\"Company\" fieldname=\"Company\"/></fields><condition><lop value=\"or\"><lop value=\"and\"><cond tablename=\"Contact\" fieldname=\"Upd\" op=\">=\" value=\"{1}\"/><cond tablename=\"Contact\" fieldname=\"UpdTime\" op=\">=\" value=\"{2}\"/></lop><lop value=\"and\"><cond tablename=\"Contact\" fieldname=\"New\" op=\">=\" value=\"{1}\"/><cond tablename=\"Contact\" fieldname=\"NewTime\" op=\">=\" value=\"{2}\"/></lop></lop></condition></query></request>", user.Id, LastSync.ToString("dd.MM.yyyy"), LastSync.ToString("hh:mm:ss.fff"));