2009-10-29 16 views
6

Mam wiele lokalnych plików resourseCzy mogę łączyć zasoby lokalne w zespołach satelitarnych?

  • /Controls/App_LocalResources/SomeControl.ascx.resx,
  • /Pages/App_LocalResources/SomePage.aspx.resx itp

I Chcę dodać inny język i nie chcę przechodzić przez wszystkie foldery i dodawać na przykład plików SomeControl.ascx.de.resx, a następnie przekompilować cały proces myślenia.

chciałbym używać zestawów satelitarnych i umieścić wszystkie pliki w coś podobnego MyWebPage.de.dll

Było to możliwe w wersji VS2003 dla globalnych zasobów, ale nie jestem pewien, czy mogę to zrobić w VS2008 wersja dla zasobów lokalnych?

mam dostępu do zasobów ze składnią:

<asp:label id="lblSomething" runat="server" meta:resourcekey="labelFirstName"/> 

Odpowiedz

5

Twoje pytanie nie jest tak naprawdę zbyt jasne od tego, czy szukasz cechą VS2008 lub cesze ram ASP.NET. Więc pójdę z rozwiązaniem kodu.

Niejawna składnia powiązań, z której korzystasz, korzysta z domyślnego obiektu LocalResourceProvider programu ASP.NET, który przechwytuje ścieżkę strony, na której znajdują się zasoby, aby określić, które zasoby mają zostać załadowane. Jeśli twoje zasoby są przechowywane gdzie indziej i nadal chcesz używać domyślnego systax wiążącego w twoim kodzie z przodu, będziesz musiał użyć własnego Dostawcy. Brzmi skomplikowanie, ale jest dość proste.

Do tego trzeba pierwszej podklasy ResourceProviderFactory

robić i zastąpić zarówno

IResourceProvider CreateGlobalResourceProvider(string classKey) 
IResourceProvider CreateLocalResourceProvider(string virtualPath) 

... następnie zaimplementować własną IResourceProvider który dostaje swoje zasoby z twoich zespołów satelitarnych używając ResourceManager

public interface IResourceProvider 
{ 
    object GetObject(string resourceKey, CultureInfo culture); 
    IResourceReader ResourceReader { get; } 
} 

Następnie należy dodać konfigurację do pliku web.config, aby umożliwić programowi ASP.NET korzystanie z satelity SatelliteResourceProviderFactor y i przenieś swoje zasoby do twojego zewnętrznego zgromadzenia, ale to powinno być dobre.

Mnóstwo dokumentacji można znaleźć tutaj ... w sekcji „Budowanie bazy zasobów Provider” ...

http://msdn.microsoft.com/en-us/library/aa905797.aspx#exaspnet20rpm_topic4

Powiązane problemy