C# C语言中的强类型资源文件#

C# C语言中的强类型资源文件#,c#,embedded-resource,strong-typing,C#,Embedded Resource,Strong Typing,我有一个windows应用程序,可以访问类库项目中的文件 public static class Global { private static ResourceManager ResourceManager { get; set; } static Global () { ResourceManager = new ResourceManager("MyClassLibraryProject.Resource", Assembly.GetExecuti

我有一个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
属性。是否有更简单的方法来访问资源文件中每一行的强类型名称?

这可能会满足您的要求:

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

从文档中:

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

resgen myResources.resx myResources.resources/str:C#,名称空间1,MyClass,MyFile.cs


这是我讲的。Visual Studio 2010已在生成时使用工具
ResXFileCodeGenerator
生成类文件。然而,类的可访问性是
内部的
,如果我更改它,它将在构建时被替换。有没有办法自定义此行为,以便我可以指定公共访问修饰符?找到了。真不敢相信我错过了。