2011-11-16 15 views
6

Ayrı bir uygulamam var (bu, .resx dosyalarımı denetleme amacıyla). Etkinlik. Ancak, .resx dosyası bir metin dosyası içeriyorsa (örneğin xml), uygulamam dosya yükler ve yazım denetimi yapmaya çalışır. Bunu yapmak istediğim şey tam olarak bu değil. Yüklenen kaynak aslında bir dosya ise ResXResourceReader'dan söyleme yolu var mı?ResXResourceReader'ı kullanırken, kaynağın katıştırılmış bir dosya olup olmadığını nasıl anlayabiliriz veya gömülü bir dize ise

kod örneği şuna benzer:

   ResXResourceReader reader = new ResXResourceReader(filename); 
       ResourceSet resourceset = new ResourceSet(reader); 

       Dictionary<DictionaryEntry, object> newvalues = new Dictionary<DictionaryEntry, object>(); 

       foreach (DictionaryEntry entry in resourceset) 
       { 
        //Figure out in this 'if' if it is an embedded file and should be ignored. 
        if (entry.Key.ToString().StartsWith(">>") || !(entry.Value is string) || string.Compare((string)entry.Value, "---") == 0) 
         continue; 
       } 

cevap

6

Evet.öğesininüzerinde ayarlanması, sözlük değerlerinin gerçek değer yerine ResXDataNode olmasını sağlar; bu, dosyanın bir dosya olup olmadığını belirlemek için kullanabilirsiniz. Böyle bir şey:

var rsxr = new ResXResourceReader("Test.resx"); 
rsxr.UseResXDataNodes = true; 
foreach (DictionaryEntry de in rsxr) 
{ 
    var node = (ResXDataNode)de.Value; 
    //FileRef is null if it is not a file reference. 
    if (node.FileRef == null) 
    { 
     //Spell check your value. 
     var value = node.GetValue((ITypeResolutionService) null); 
    } 
} 
İlgili konular