使用.Net Resource Strings合并冲突和糟糕的UI

时间:2017-03-13 23:33:20

标签: c# .net mercurial

资源字符串非常烦人。

  1. 您必须将文本复制到Notepad ++中才能编辑它们
  2. 滚动浏览大字符串几乎是不可能的
  3. 当您在资源字符串引用上按F12时,它会将您带到资源商店的代理,但无法编辑,也无法查看长字符串的全文。
  4. 随着越来越多的开发人员填写资源字符串列表,合并冲突越来越多地发生在XML资源文件上。
  5. 有没有办法停止XML资源字符串文件中的合并冲突?还有更好的方法吗?

2 个答案:

答案 0 :(得分:2)

  

您必须将文本复制到Notepad ++中才能编辑它们

Visual Studio还为资源文件提供XML编辑器视图。我在数据表视图中几乎完全使用它。试一试。

  

滚动大字符串几乎是不可能的

在XML视图中可能更容易。

  

当您在资源字符串引用上按F12时,它会将您带到资源商店的代理,但无法编辑,也无法查看长字符串的全文。

我只需使用ctrl + F并输入资源ID。

  

随着越来越多的开发人员填充资源字符串列表,合并冲突越来越多地出现在XML资源文件中。

如果所有开发人员确保按字母顺序添加或插入文件,则合并问题会大大减少。我们编写了一个脚本来完成它并将其放入自动构建中。

另外,考虑将资源组织成单独的文件用于不同目的,例如控件标签可以放在一个文件中,大文本部分可以放在不同的文件中。这也将减少争用。

答案 1 :(得分:0)

是的,有 - 代码。

创建一个单独的静态类,我喜欢后缀"查询"如果它充满了SQL,或者"资源"如果它更通用。

在C#中,你可以使用@"",这已经足够了,但是最新的$ @""如果你想进行插值,这很好。

示例:

public class ApplicationStructureCacheQueries
{
    public static readonly string ChangeOverNew = $@"
    delete from ApplicationStructureCache
    insert into ApplicationStructureCache
    select * from #NewApplicationStructureCache
    ";
}

代码控制非常适用于基于行的编码语言(而不是具有多行关联的结构化数据 - XML)。您可以使用编码语言的全部功能来处理字符串,包括继承(如果需要)(但使其成为单个对象,而不是静态引用),或者可能是插值函数,因此它很好并且类型安全和凝聚力。