2009-10-29 13 views
6

yerel resourse dosyalarının çokYerel kaynakları uydu meclislerinde birleştirebilir miyim?

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

Ben Başka bir dil eklemek istiyorum ve tüm klasörler üzerinden gitmek istemiyorum ve örneğin SomeControl.ascx.de.resx dosyalarını eklemek istiyorum ve sonra tüm düşünceyi yeniden derlemek zorundayım.

ben uydu derleme kullanmak ister ve MyWebPage.de.dll

gibi bir şey

Bu, küresel kaynaklar için VS2003 sürümünde mümkündü içine tüm dosyaları gömmek, ama ben VS2008 yapabilirim emin değilim ediyorum yerel kaynaklar için sürüm

Ben sözdizimi ile kaynak erişiyorum:

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

cevap

5

Sorunuz Eğer VS2008 bir özelliği veya ASP.NET çerçevesinin bir özellik için aradığınız olmadığına gerçekten çok açık değildir. Bu yüzden kod çözümü ile gideceğim.

Kullandığınız örtülü bağlayıcı sözdizimi, kaynakların hangi kaynaklarda yükleneceğini öğrenmek için kaynakların bulunduğu sayfa yolunu alan ASP.NET'in varsayılan LocalResourceProvider işlevini kullanır. Kaynaklarınız başka bir yerde depolanıyorsa ve hala kodunuzdaki örtük bağlayıcı systax'ı kullanmak istiyorsanız, kendi Sağlayıcınızı kullanmanız gerekecektir. Kulağa karmaşık geliyor ama oldukça basit.

ilk alt sınıf ResourceProviderFactory

gerekir Bunu yapmak ve geçersiz kılmak için hem

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

... sonra ResourceManager

kullanarak uydu montajı ile ilgili kaynaklarınızı alır kendi IResourceProvider uygulamak
public interface IResourceProvider 
{ 
    object GetObject(string resourceKey, CultureInfo culture); 
    IResourceReader ResourceReader { get; } 
} 

Daha sonra ASP.NET'in SatelliteResourceProviderFactor'unuzu kullanmasını sağlamak için web.config dosyanıza yapılandırma eklemeniz gerekir. y ve kaynaklarınızı harici bir araya getirin, ama bu gitmek için iyi olmalısınız. Belgelerin

Bol ... "Veritabanı Kaynak Sağlayıcı Bina" bölümü altında ... burada bulabilirsiniz

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

İlgili konular