2009-09-22 11 views
11

kullanıyorum benim .net web sitesinde bir resx dosyası yüklemek çalışıyorum dosya .Resx değil .resources yüklemeye çalışırken:ResourceManager

ResourceManager rm = new ResourceManager("Project.Resource", Assembly.GetExecutingAssembly()); 

Resource.resx dosya klasörü App_LocalResources olduğunu ve olmaya ayarlanır derleme üzerine gömülü.

kullanıyorum resx dosyasını erişmeye çalıştığınızda:

rm.GetString("key"); veya

rm.GetString("key", culture); bir hata mesajı alıyorum:

tüm kaynakları bulunamadı uygun Belirtilen kültür için veya nötr kültür. Emin "Project.Resource.resources" doğru imzalı gömülü veya derleme zamanında montaj "Proje" içine bağlanmış veya gerekli tüm uydu meclisleri yüklenebilen olduklarını ve tam gibi görünmesini sağlayın.

.Resources'e dikkat edin ... burada olup bitenlerle ilgili herhangi bir fikir var mı?

+0

Tasarım dosyası oluşturulamadı mı? –

cevap

3

ResourceManager'ı kullanma şeklinizin yanlış olduğunu düşünüyorum. Bkz. Bu post.

Ayrıca, Visual Studio'nun komut istemini açtığınızda, & resgen.exe dosyasını çalıştırdığınızda, kaynak dosyalarını bir biçimden diğerine (yani, kaynaklara karşı) dönüştürmek için kullanıldığını belirtir. Sanırım, dosyanızı resx & kaynaklarına dönüştürmeniz ve daha sonra resourceManager kullanarak yükleyin.

+1

Beni doğru yola koyduğunuz için teşekkürler ... ResourceManager kullanmamalıyım. <% $ Resources: dosyaadı, anahtar%> sözdizimini kullanarak sayfamda yerine yazdım –

1

.resx uzantısını açıkça ekleyin.

Ayrıca, otomatik olarak oluşturulan sınıfı kullanabilir ve projeniz için uygunsa özelliklerini kullanabilirsiniz.

+0

"Project.Resource" dosyasına .resx eklediğimde aynı hatayı alıyorum ama Project.Resource.resx.resources için –

+0

Üzgünüz, .resx'inizin App_LocalResources içinde olduğunu özledim. Mesajımın hiçbiri geçerli değil ... –

3

Hangi .NET Framework sürümünü kullandığınızdan emin değilim.

ResourceManager'ı nasıl hayata geçireceğinizin yolunu değiştirmeyi deneyin.

Çalışması gerekir. Bu, aynı zamanda, beton rezistansı yöneticisinin otomatik olarak oluşturulmuş .designer.cs sınıfının statik bir özelliği olarak da ortaya çıkmaktadır.

13

Eğer namespace

var rm = new ResourceManager("Namespace.ResxName", Assembly.GetAssembly()); 

belirtmek gerek ResourceManager içine .Resx yüklemek için veya VS ResxName.Designer üretecektir sonra erişim Değiştirici içinde Dahili veya Halka Kaynak Editör Yönetilen ayarladığınız takdirde ücretsiz olarak ResourceManager alabilirsiniz.cs

var rm = ResxName.ResourceManager; 
+1

+ 1 Tasarımcı kodundan kaynaklara erişme yöntemi için – Boggin

4

okuma kaynağın şaşırtıcı basit bir yolu dize tarafından var:

ResourceNamespace.ResxFileName.ResourceManager.GetString("ResourceKey") 

O "nokta Gösterim" kullanılamaz nerede kaynak anahtar olduğunda örneğin (tuşları ile kaynak okumak için temiz ve zarif bir çözüm veritabanında devam etti).

İlgili konular