C# - 从汇编中获取资源字符串的最快方法

Dee*_*ons 20 c# performance resources assemblies resx

我真的不知道/有答案,知道resx使用c#中的程序集中的文件中的密钥来查找资源值.(或者我可能是无知的).

什么是最快的代码,我可以从资源文件中检索string valuesvalues使用密钥的方式,该资源文件作为资源嵌入到程序集中.我正在为资源文件中的异常存储友好消息,并希望在需要时使用它们.

为此目的是否存在静态类?

我可以使用开源成熟的项目吗?

her*_*ube 41

如果资源与代码在同一程序集中,则以下内容将执行:

String resourceValue = MyAssemblyNameSpace.Properties.Resources.ResourceName
Run Code Online (Sandbox Code Playgroud)

取自这个SO答案.


sbl*_*lom 18

Assembly assembly = this.GetType().Assembly;
ResourceManager resourceManager = new ResourceManager("Resources.Strings", assembly);
string myString = resourceManager.GetString("value");
Run Code Online (Sandbox Code Playgroud)

  • 嗨,谢谢你的代码.lin1不采用反射吗?这是多么高效. (3认同)
  • @Deeptechtons,是的--sorta 确实如此。我实际上并不认为 GetType().Assembly 是那么慢,但即使它是,大概你只会在你的程序早期做一次。这个想法是你将 `resourceManager` 藏在你的应用程序的主对象或其他东西的某个地方,并在你需要获取字符串时使用它。 (2认同)

Sur*_*uka 11

string val = Resources.ResourceManager.GetString("resource_name");
Run Code Online (Sandbox Code Playgroud)

鉴于"resource_name"您可以检索资源价值.