2013-03-07 4 views
1

У меня есть веб-сервис, который поставляет мне сгенерированный .resx (только XML), который затем конвертирую в двоичный файл .resources. В настоящее время я создаю файл сборки с помощью al.exe. Вот мои аргументы:Загрузите «свободные» локализованные ресурсы во время выполнения?

/t:lib /c:{culture} /embed:"{.resource input}" /out:"{.dll output}" 

Загрузка эта сборка в помощью Assembly.LoadFrom(file) работает отлично, но я считаю, что моя сборка не должным образом генерируется. У него нет типа, пространства имен или методов для вызова, и, следовательно, нет ResourceManager.

По сути, мне просто интересно узнать, возможно ли вообще создавать, загружать и использовать ресурсы, не имеющие класса или пространства имен, о которых мой проект знает во время компиляции. Благодарю.

+0

Не отвечаю на вашу озабоченность, к этому, к сожалению, тоже относится. Но если у вас есть ключ к моей проблеме, возможно, это связано: [мой SO post] (http://stackoverflow.com/questions/14929590/resource-localization-use-of-xuid-refering-to-another-assemblys- ресурс). – Mic

+0

Я еще не добрался до этой кроличьей дыры, но я дал вам преимущество и любимый; это на самом деле то, что меня интересует, поэтому я надеюсь, что вы это поняли. – erodewald

ответ

4

Ваш сборник представляет собой сборку спутника. От MSDN:

По определению, спутниковые сборки могут содержать только ресурсы. Они не могут содержать исполняемый код.

Если вы хотите получить доступ к ресурсам этой сборки - подобный код должен работать:

ResourceManager rm = new ResourceManager(
    "ResourceTest.Properties.Resources", 
    Assembly.LoadAssembly(file)); 
MessageBox.Show(rm.GetString("helloWorldString")); 

Кроме того, в статье из MSDN: Walkthrough: Loading Resources from a Satellite Assembly показывает альтернативный способ, как загрузить строку ресурс из спутниковая сборка.

+0

Хороший звонок, не могу поверить, что я пропустил это в документах. Я все еще не совсем уверен, что это сработает для меня, но я сделаю некоторые изменения на основе вашего предложения. – erodewald

+0

Закончилось, что он отлично работает с вашим методом. Отмечено как ответ. – erodewald

Смежные вопросы