c#GetManifestResourceNames()不返回任何内容
我正在我的应用程序上使用本地化,希望获得基本语言中使用的c#GetManifestResourceNames()不返回任何内容,c#,localization,c#-2.0,C#,Localization,C# 2.0,我正在我的应用程序上使用本地化,希望获得基本语言中使用的资源文件的基本列表。研究表明,下面的陈述应该能满足我的需求 Assembly a = System.Reflection.Assembly.GetExecutingAssembly(); string[] resNames = a.GetManifestResourceNames(); 我没有得到任何错误,只是一个空字符串数组(string[])。我已经在运行IIS Express的本地计算机和生产服务器上对此进行了测试 在局部查看程序集
资源
文件的基本列表。研究表明,下面的陈述应该能满足我的需求
Assembly a = System.Reflection.Assembly.GetExecutingAssembly();
string[] resNames = a.GetManifestResourceNames();
我没有得到任何错误,只是一个空字符串数组(string[]
)。我已经在运行IIS Express的本地计算机和生产服务器上对此进行了测试
在局部查看程序集
变量时,分配的值如下所示
{App_Code.i5gd5jfv, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null}
非常感谢您的帮助!提前谢谢 根据dtb的评论,我发现我没有引用
正确的组件
。因此,为了获得App\u 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.
}
}
}
如果有更好的办法,请告诉我 代码获取执行程序集的资源名称。如果您的资源位于不同的程序集中,那么获取正在执行的程序集的资源名称没有帮助。换句话说:您实际的问题是:如果不是正在执行的程序集,如何获取包含资源的程序集的
程序集
实例。@dtb,我明白了。这是有道理的。回到研究上来。@dtb,我已经想出了一个解决方案。它可能不太漂亮,但对我来说,到目前为止,它是有效的!谢谢你的意见!App_GlobalResource程序集是否包含任何类?然后获取程序集
实例的最简单方法通常是类型(SomeNamespace.SomeClass).Assembly
。我不确定如何解决这个问题。看起来会更干净,而且可能更快。