繁体   English   中英

我如何以编程方式在resx文件中创建另一个列

[英]How I can programatically create another Column in resx file

描述:
我工作的一个词典多语言多组织 CMS。

当前,我们正在使用数据库解决方案(Sql Server),但由于数据库流量巨大,我们正在寻找替代解决方案,并且我发现了.resx文件。

在这里,我们将以编程方式创建.resx文件和一个.resx文件/语言。 在每个.resx文件中,我们要添加一个organizationId。您可以在下面看到英语的.resx文件。

我们希望在.resx中使用此结构

Name    Value        Comment                   OrganizationId
About   About     this file is for english          1
Login   Login     this file is for english          2

场景是,当在我的cms中添加一个lang时,我将使用它创建一个资源文件,其中将包含该语言的字典(English key,该语言值)。

现在,如果一个词具有一种含义 ,那么一切都会按计划进行,但是要求Two organization can one have different meaning对一个词Two organization can one have different meaning

例如,单词hello在组织1中的含义为abc在组织2中的含义为abc2

我的问题:
1.如何使用.resx文件执行此操作,如果无法使用.resx文件执行操作,那么此方案最有效的替代方法(速度,维护,灵活性)是什么。

我的代码:
目前,我正在尝试示例:

             // Define a resource file named CarResources.resx. 
            using (ResXResourceWriter resx = new ResXResourceWriter(@"D:\VSProjects\CreateResourceFile\CreateResourceFile\CarResources.resx"))
            {

                resx.AddResource(new ResXDataNode("About", "About"){    Comment = "this file is for english" });
                resx.AddResource("Login", "Login");
                resx.AddResource("News", "News");
                resx.AddResource("Headline", "Headline");
                resx.AddResource("Information", SystemIcons.Information);

            }

Resx文件具有严格的架构,并且不包含您想要的其他字段。 因此,即使您设法添加文件字段(即使用常规XML API),标准.Net资源方法也可能无法处理此类修改后的文件。

根据您的需求,您可以使用完全自定义的XML(LINQ-to-XML提供了一种创建/读取XML文档的简便方法),或者如果您确实要使用resx文件-按组织(除语言之外)对文件进行分区,例如

text.org1.en-us.resx
text.org2.en-us.resx
text.org1.fr.rest

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM