2010-08-10 47 views
0

我有這樣的代碼被稱爲幾千次,我需要優化其性能。 我想過緩存xmlQualifiedNames,但它不夠好。 有什麼想法?如何優化schemaDocument.Namespaces的性能代碼?

private static string GetPrefixForNamespace(string ns, XmlSchema schemaDocument) 
    { 
     string prefix = null; 
     XmlQualifiedName[] xmlQualifiedNames = schemaDocument.Namespaces.ToArray(); 
     foreach (XmlQualifiedName qn in xmlQualifiedNames) 
     { 
      if (ns == qn.Namespace) 
      { 
       prefix = qn.Name; 
       break; 
      } 
     } 

     return prefix; 
    } 

回答

0

,因爲你正在尋找的xmlQualifiedNames內部字符串(Namespace),約緩存那些怎麼樣?

或者使用LINQ在其中進行搜索嗎?

或者 - 取決於您獲得的輸入種類 - 使用記憶功能來加速您的通話(真的只是幻想緩存)like in this article.

0

東西它在DictionaryHashtable甚至一些緩存機制。