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
。我不确定如何解决这个问题。看起来会更干净,而且可能更快。