J'ai une exigence dans mon application que je pense peut être satisfaite en utilisant le stockage local de thread, mais je me demande si c'est l'une de ces choses qu'il vaut mieux éviter.Quelles sont les meilleures pratiques pour utiliser le stockage local de threads dans .NET?
J'ai lu quelques articles sur le sujet:
http://www.dotnetcoders.com/web/Articles/ShowArticle.aspx?article=58
http://msdn.microsoft.com/en-us/library/system.threadstaticattribute(vs.80).aspx
Je sais comment à utiliser, je me demande si je devrais utiliser.
Un conseil, faut-il être conscient de?
[Modifier]
est ici le cas d'utilisation:
J'Entonnoir tout accès aux données à travers quelques méthodes qui font beaucoup de vous connecter sur chaque requête. Une chose que je consigner est un vidage complet du texte de la commande avec les commandes remplies afin que je puisse simplement copier-coller à partir de mes journaux de suivi directement dans Sql Management Studio.
Montez dans global.asax dans mes applications Web J'envoie des courriels aux administrateurs avec autant d'informations que possible lorsque je reçois une exception non gérée. Je veux mettre ce texte de vidage de commandes sql dans cet e-mail lorsque j'obtiens une exception SqlException, ce qui me fera gagner du temps à creuser dans les journaux de trace lorsqu'une page explose à cause d'une requête. Je ne veux pas changer les signatures de méthode de mes classes d'accès aux données juste pour que je puisse passer une référence tout au long de la pile, juste pour la sortir quand j'ai une exception. Je pensais que TLS serait peut-être un bon endroit pour mettre quelque chose comme «lastsqlcommand», mais cela ne semble pas être une solution viable.
J'ai toujours évité le stockage local par thread et trouvé une autre façon de faire la même chose. Ma pensée a toujours été thread-local de stockage est probablement plus lent que l'accès direct (pas sûr si c'est vrai). Je serais curieux de savoir ce que les autres pensent aussi. – dongola7