5

我有一个访问类库项目中的文件的 Windows 应用程序。

public static class Global
{
    private static ResourceManager ResourceManager { get; set; }

    static Global ()
    {
        ResourceManager = new ResourceManager("MyClassLibraryProject.Resource", Assembly.GetExecutingAssembly());
    }

    private static string GetValue (string name)
    {
        return (ResourceManager.GetString(name, Options.CultureInfo));
    }

    public static string ProductName
    {
        get
        {
            return (GetValue(MethodBase.GetCurrentMethod().Name.Replace("get_", "")));
        }
    }
}
`

在此示例中,我ProductName手动创建了该属性。有没有更简单的方法来访问资源文件中每一行的强类型名称?

4

1 回答 1

5

这可能会满足您的需求:https ://docs.microsoft.com/en-us/dotnet/framework/tools/resgen-exe-resource-file-generator

由于资源属性类型是在运行时确定的,因此您需要一个工具来分析资源文件的预编译时间并生成所需的属性。Resgen.exe 将执行此操作,但您也可以创建自定义 t4 脚本或其他内容。

从文档:

以下命令读取基于 XML 的输入文件 myResources.resx 并写入名为 myResources.resources 的二进制资源文件。它还生成一个名为 MyFile.cs 的 C# 文件,其中包含一个名为 MyClass 的类,其中包含与输入文件中引用的资源匹配的强类型属性。MyClass 类包含在名为 Namespace1 的命名空间中。

resgen myResources.resx myResources.resources /str:C#,Namespace1,MyClass,MyFile.cs

于 2012-04-18T11:22:14.987 回答