2011-05-16 8 views
4

J'ai une bibliothèque centrale (DLL) appelée Core qui est utilisée par de nombreux projets (certaines applications web, certaines formes de gain, d'autres bibliothèques de classes).Stratégie de partage de ressources entre projets

Certaines ressources sont stockées dans la bibliothèque Core.

Lorsque j'ai besoin d'utiliser un fichier de ressources dans la bibliothèque Core, j'ai besoin de savoir quelles sont les informations de culture. Parce qu'il est parfois utilisé dans une application de formulaire de gain, parfois dans une application web, je ne peux pas vraiment utiliser la culture de HttpContext ou de la CurrentThread.

J'imagine que ce un problème commun, donc je me demande:

Qu'est-ce qu'une bonne stratégie pour transmettre les informations de culture autour entre dll DAL et les projets de l'interface utilisateur?

Répondre

2

Vous pouvez toujours obtenir la culture de CurrentThread. Il est pris en charge à la fois dans WinForms et les applications Web. Encore mieux: vous n'aurez probablement pas besoin de vous soucier de cela, car le gestionnaire de ressources dans .NET gérera ceci en fonction de la culture actuelle.

+0

Et la culture actuelle dans une application Web sera définie avec la culture de l'utilisateur (et non la culture du serveur exécutant l'application Web)? –

+1

@Hugo Il appartient à l'application Web de définir le CurrentCulture/CurrentUICulture du thread en cours à chaque requête. Ils découvriront rapidement s'ils ne le font pas correctement. – Joshua

+0

Merci, définir les informations de culture à partir du fil de l'interface utilisateur et l'obtenir de cette façon a beaucoup de sens. –

1

Vous pouvez définir la culture d'interface utilisateur pour un thread.

Ensuite, vous êtes déjà corrigé dans le cas de WinForms.

Dans aspnet, vous devrez définir la culture ui actuelle pour le thread. Vous pouvez connecter cette procédure dans OnActionExecuted d'un contrôleur de base à cet effet (MVC) ou utiliser l'événement PreInit (Webforms). Cela peut également être fait dans un HttpModule.

+0

Merci pour les informations supplémentaires sur les contrôleurs/gestionnaires d'événements, sera utile. –

Questions connexes