我在我的应用程序上使用本地化,并希望获得以基本语言使用的 Resource
文件的基本列表。研究表明,下面的陈述应该能让我得到我想要的东西。
Assembly a = System.Reflection.Assembly.GetExecutingAssembly();
string[] resNames = a.GetManifestResourceNames();
我没有收到任何错误,只是一个空字符串数组 (string[]
)。我已经在运行 IIS Express 的本地计算机和生产服务器上对此进行了测试。
在本地查看Assembly
变量,赋值如下。
{App_Code.i5gd5jfv, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null}
非常感谢任何帮助!提前致谢!
最佳答案
根据 dtb 的评论,我发现我没有引用正确的程序集
。因此,我编写了以下代码,以便为 App_GlobalResources
获取正确的 Assembly
,然后获取资源列表。
Assembly[] assemblyList = AppDomain.CurrentDomain.GetAssemblies();
foreach (Assembly assembly in assemblyList)
{
string assemblyName = assembly.GetName().Name.ToString().Split(new char[] { '.' })[0];
if (assemblyName == "App_GlobalResources")
{
foreach (string s in assembly.GetManifestResourceNames())
{
//do stuff with the list of resources.
}
}
}
如果有更好的方法,请告诉我!
关于c# GetManifestResourceNames() 什么都不返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18467296/