资源文件名称搜索

时间:2012-09-20 01:04:28

标签: c# .net vb.net resx

我现在有一个资源文件,但最终会增长到更多。每个资源文件都具有一致的Name模式,但在大多数情况下,Value会有所不同。每个资源文件(* .resx)都与我正在构建的类紧密相关。

话虽如此,名称模式是这样的:Key?SKeyUKey?SUKey

  • Key? :?可以是任何一个角色。正则表达式模式类似于Key[A-Z]
  • UKey? :?可以是任何一个角色。与Key?
  • 类似
  • SKey& SUKey:这些名称中只有一个可能是任何资源文件

我真的只是想知道,在资源文件中提取值的最佳方法是什么,因为它们并不总是在A& A之间具有每个字母。 Z'

编辑2012-09-20 11:48 AM CST

ResourceManager resmgr = project.resx_name.ResourceManager;
string[] mtch = resmgr.getstring("Key?").toarray<string>();

然后遍历数组并从结果匹配中构建一个字符串。上面所有指定的Key模式都将产生字符串值正则表达式模式。

编辑2012-09-22 9:00 AM CST

好的,这是我到目前为止的逻辑,任何人都可以有效吗?我还没有完成该类的其他组件的构建,所以我将完成它们的开发,然后开始测试下周中下游。

ResourceSet rs = syntaxhighlighter.vbnet.ResourceManager.GetResourceSet( CultureInfo.CurrentCulture , true , true );
foreach( DictionaryEntry entry in rs ) {
    if( Regex.IsMatch( entry.Key.ToString() , "Key" ) ) {
        if( Regex.IsMatch( entry.Key.ToString() , "^Key[A-Z]" ) ) {
            this._keys += entry.Value.ToString();
        } else if( Regex.IsMatch( entry.Key.ToString() , "^SKey$" ) ) {
            this._keys += entry.Value.ToString();
        } else if( Regex.IsMatch( entry.Key.ToString() , "^UKey[A-Z]" ) ) {
            this._ukeys += entry.Value.ToString();
        } else if( Regex.IsMatch( entry.Key.ToString() , "^SUKey$" ) ) {
            this._ukeys += entry.Value.ToString();
        }
    }
}
this._attr = @"<(.*\.)?(.+?)(Attribute)?(\((.*)?\))?>";

Resource.resx文件

名称 - 价值

  • KeyA - AddHandler | AddressOf | Alias | And | AndAlso | As
  • SKey - #Const | #Else | #ElseIf | #End | #If | \ = | \&amp; | \&amp; \ = | * | * \ = | / | / \ = | \ | \\ = | \ ^ | \ ^ \ = | + | + \ = | - | - \ = |&GT;&GT; |&GT;&GT; \ = | \&LT; \&LT; | \&LT; \&LT; \ =

0 个答案:

没有答案