确定是否在ResourceManager中存在资源(Determine if a resource

2019-08-23 01:36发布

反正是有,以确定是否一个ResourceManager包含一个名为资源? 目前我捕捉MissingManifestResourceException但我讨厌不得不使用非特殊情况下例外。 必须有一些方式,通过反射,或东西列举一个ResourceManager的名称值对?

编辑 :更详细一点。 资源是不是在执行程序集,但是,ResourceManager会工作得很好。 如果我尝试_resourceMan.GetResourceSet(_defaultCuture, false, true)我得到空,而如果我尝试_resourceMan.GetString("StringExists")我得到一个字符串返回。

Answer 1:

您可以使用的ResourceSet要做到这一点,只有它所有的数据加载到内存中如果您枚举它。 这里y'go:

    // At startup.
    ResourceManager mgr = Resources.ResourceManager;
    List<string> keys = new List<string>();

    ResourceSet set = mgr.GetResourceSet(CultureInfo.CurrentCulture, true, true);
    foreach (DictionaryEntry o in set)
    {
        keys.Add((string)o.Key);
    }
    mgr.ReleaseAllResources();

    Console.WriteLine(Resources.A);


Answer 2:

我想你可以使用类似Assembly.GetManifestResourceNames枚举大会的清单可用资源的列表。 这是不漂亮,并不能解决所有的角落案件,但如果需要的作品。



文章来源: Determine if a resource exists in ResourceManager
标签: c# resources