c# - Is it possible to return a different type after reading a configuration section as a .NET ConfigurationCollection? -


मैं app.config से एक साधारण संग्रह पढ़ रहा हूं:

  & lt; MongoInstances & gt; & Lt; MongoInstance सर्वर पता = "server1" / & gt; & Lt; MongoInstance सर्वर पता = "server2" / & gt; & Lt; / MongoInstances & gt;  

निम्नलिखित क्षेत्र में

  [ConfigurationProperty ( "MongoInstances")] [ConfigurationCollection (typeof (MongoInstancesCollection), AddItemName = "MongoInstance")] सार्वजनिक MongoInstancesCollection ServerUrls {...}  
एक अलग प्रकार का होना करने के लिए

जो अपेक्षा के अनुरूप, एक MongoInstancesCollection वस्तु में app.config जानकारी लौटने काम करता है।

मैं इस क्षेत्र को चाहते हैं और एक IEnumerable को संग्रह वस्तु कन्वर्ट इस प्रकार है:

  [ConfigurationProperty ( "MongoInstances")] [ConfigurationCollection (typeof (MongoInstancesCollection), AddItemName = "MongoInstance")] सार्वजनिक IEnumerable & LT; MongoServerAddress & gt; ServerUrls {get {IList & lt; MongoServerAddress & gt; परिणाम = नई सूची & lt; MongoServerAddress & gt; (); Var संग्रह = (MongoInstanceCollection) यह ["MongoInstances"]; विदेशी मुद्रा (संग्रह में मोन्गो इन्स्टेंस उदाहरण) {result.Add (नया मोंगोसेरवारा पता (उदाहरण। पता)); } वापसी परिणाम; }}  

लेकिन मैं निम्नलिखित अपवाद हो रही है:

  System.Configuration.ConfigurationErrorsException: संपत्ति 'MongoInstances' एक ConfigurationElement नहीं है। इसे Googled और पता चला कि अगर मैं मैन्युअल रूप से संपत्ति सेट और फ़ील्ड परिभाषा से ConfigurationProperty विशेषता को हटा दें, यह दूर हो जाता है:  
  Properties.Add (नया कॉन्फ़िगरेशन प्रॉपर्टी ("MongoInstances", टाइपफ (MongoInstancesCollection), नए MongoInstancesCollection ()));  

लेकिन अब मैं कोई नया अपवाद है कि मैं समझ नहीं कैसे remediate करने के लिए हो रही है:

  System.Configuration.ConfigurationErrorsException: अपरिचित तत्व 'MongoInstance' < / कोड> 

कोई भी मदद काफी सराहना की जाएगी! धन्यवाद!

की तरह कुछ की कोशिश करो और MangoInstancesCollection ConfigurationElementCollection और IEnumerable से विरासत है।


Comments