Я был в Visual Studio и имел файл класса: Foo.cs ... Я создал файл ресурсов (resx) с именем Foo.resx , потому что я также планирую иметьa Foo.es-SP.resx .
Visual Studio, очень красиво, спрятал файл ресурсов так же, как он убирает файлы кода для страниц xaml.
Проблема в том, что приложение не будет компилироваться, потому что генератор ресурсов создал класс Foo.Designer.cs (designer), который имеет внутренний класс Foo для ресурса, имя которого совпадает с именем моего класса Foo:
Foo.cs
public class Foo { ... }
Foo.Designer.cs
internal class Foo { ... }
, что довольно раздражает, потому что мое приложение не будетскомпилируйте сейчас.Итак, я решил обмануть Visual Studio здесь и переименовать файл (не сам класс).Теперь у меня есть FooC.cs и FooC.resx и FooC.Designer.cs.Это изменило класс resx на internal class FooC { ... }
. Компилируется, но не вылетает при запуске приложения при попытке получить ресурс.
ПочемуVisual Studio создать внутренний класс, который сталкивается с моим существующим классом?Очевидно, что создание ресурса для вашего класса должно иметь то же имя, потому что он организует его для вас.
Почему возникает ошибка во время выполнения, когда я пытаюсь использовать ресурс, которыйпомечен как «Встроенный ресурс»?
Сообщение об ошибке:
System.Resources.MissingManifestResourceException: Не удалось найти ресурсы, подходящие для указанной культуры илинейтральная культура.Убедитесь, что «MyProj.FooC.resources» был правильно встроен или связан со сборкой «MyProj» во время компиляции, или что все требуемые сателлитные сборки являются загружаемыми и полностью подписаны.в System.Resources.ManifestBasedResourceGroveler.HandleResourceStreamMissing (String fileName)