J'utilise System.IO.FIle.ReadAllText() pour obtenir le contenu de certains fichiers modèles que j'ai créés pour le contenu de l'e-mail. Ensuite, je veux faire un remplacement sur certains jetons dans les fichiers afin que je puisse ajouter du contenu dynamique au modèle.Pourquoi est-ce que je ne peux pas String.Replace() sur une chaîne IO.File.ReadAllText()?
Voici le code que je l'ai, il me semble que cela devrait fonctionner très bien ...
Dim confirmUrl As String = Request.ApplicationPath & "?v=" & reg.AuthKey
Dim text As String = IO.File.ReadAllText(_
ConfigurationManager.AppSettings("sign_up_confirm_email_text").Replace("~", _
Request.PhysicalApplicationPath))
Dim html As String = IO.File.ReadAllText(_
ConfigurationManager.AppSettings("sign_up_confirm_email_html").Replace("~", _
Request.PhysicalApplicationPath))
text.Replace("%%LINK%%", confirmUrl)
text.Replace("%%NAME%%", person.fname)
html.Replace("%%LINK%%", confirmUrl)
html.Replace("%%NAME%%", person.fname)
Pour une raison quelconque, je ne peux pas obtenir le %% LINK %% et %% NOM %% Remplacer() appels pour fonctionner correctement. J'ai vérifié pour voir si c'était lié à l'encodage, donc j'ai fait chaque fichier UTF-8. Et aussi utilisé la surcharge d'encodage forcé de ReadAllText (String, Encoding) et toujours pas de dés. Des idées?
D'oh! C'était idiot de ma part. Merci tout le monde. – sholsinger
Beaucoup soutiendraient qu'ayant Remplacer() soit une fonction non-statique était idiot des concepteurs .NET, donc ne vous sentez pas si mal ;-) –
Oui, je pense que * chaque développeur * .NET (et Java aussi, si Je me souviens bien) a couru dans ce à un moment donné. Même en sachant parfaitement l'immutabilité des cordes. Bon sang, j'ai * toujours * oublié d'utiliser la valeur de retour parfois. – JulianR