Еще один способ получить эту ошибку - создать класс без публичных членов. 406 неприемлемым является довольно бесполезным сообщением об ошибке в этом сценарии.
Небольшой поиск сделал свое дело. У меня есть право ResourceManager
, доступное в моем strings
классе:
ResourceManager rm = strings.ResourceManager;
string someString = rm.GetString("someString");
У меня была та же проблема с использованием ASP.NET Core MVC, и мне удалось решить ее с помощью
ResourceManager rm = new ResourceManager(typeof(YourResourceClass));
string someString = rm.GetString("someString");
Очень похоже на решение @ Vlad, но в остальном у меня было MissingManifestResourceException
ResourceManager.GetString
следует сделать.
Разобранный пример из MSDN:
ResourceManager rm = new ResourceManager("RootResourceName",
typeof(SomeClass).Assembly);
string someString = rm.GetString("someString");
Существует гораздо более простой способ сделать это
[NameOfyourResxfile].ResourceManager.GetString("String Name");
в вашем случае
strings.resx.ResourceManager.GetString("someString");
Вы можете написать статический метод следующим образом:
public static string GetResourceTitle<T>(string key)
{
ResourceManager rm = new ResourceManager(typeof(T));
string someString = rm.GetString(key);
return someString;
}
И вызывать где угодно:
var title= GetResourceTitle<*YouResourceClass*>(key);
Это полезно, когда вы хотите иметь универсальную функцию для получения любой строки Файл ресурсов.