2012-09-12 8 views
7

एक .NET अनुप्रयोग में, अगर आप इस तरह उन्हें डीबी में भंडारण के रूप में विशिष्ट सेटिंग्स की जरूरत है, है तो आप LocalFileSettingsProvider अपने की एक कस्टम सेटिंग्स प्रदाता के साथ की जगह सकता है, उदाहरण:SettingsProviderAttribute प्रतिस्थापन

Create a Custom Settings Provider to Share Settings Between Applications

Creating a Custom Settings Provider

सेटिंग्स वर्ग (एक है कि ApplicationSettingsBase विरासत में) है कि आप एक विशिष्ट प्रदाता का उपयोग करना चाहते घोषित करने के लिए आपको SettingsProviderAttribute के साथ सजाने और एक पैरा के रूप में अपने प्रदाता प्रकार पारित मीटर [SettingsProvider(typeof(MyCustomProvider))], अन्यथा यह डिफ़ॉल्ट LocalFileSettingsProvider का उपयोग करेगा।

मेरा प्रश्न: क्या कोई कॉन्फ़िगरेशन या चाल है जिसका उपयोग मैं अपने एप्लिकेशन को मेरे कस्टम प्रदाता का उपयोग बिना किसी विशेषता के अनुप्रयोग के माध्यम से उपयोग करने के लिए कर सकता हूं?

कारण यह है कि मैं एमईएफ के माध्यम से प्लगइन लोड कर रहा हूं और प्लगइन्स तीसरे पक्ष के माध्यम से लिखे जा सकते हैं और मैं नहीं चाहता कि वे इस बात से चिंतित हों कि सेटिंग्स कैसे निपटाई जा रही हैं।

उत्तर

5

आप निम्न कोड आज़मा सकते हैं। यह सेटिंग ऑब्जेक्ट के निर्माण के दौरान मूल रूप से डिफ़ॉल्ट प्रदाता को मनमाने ढंग से बदल देता है। ध्यान दें कि मैंने कभी इस कोड का परीक्षण नहीं किया है।

internal sealed partial class Settings { 

    public Settings() { 

     SettingsProvider provider = CreateAnArbitraryProviderHere(); 

     // Try to re-use an existing provider, since we cannot have multiple providers 
     // with same name. 
     if (Providers[provider.Name] == null) 
      Providers.Add(provider); 
     else 
      provider = Providers[provider.Name]; 

     // Change default provider. 
     foreach (SettingsProperty property in Properties) 
     { 
      if (
       property.PropertyType.GetCustomAttributes(
        typeof(SettingsProviderAttribute), 
        false 
       ).Length == 0 
      ) 
      { 
       property.Provider = provider; 
      } 
     } 
    } 
} 
+0

यह काम करता है, लेकिन एक पंक्ति को अद्यतन करने की आवश्यकता है -> प्रदाता = प्रदाता [प्रदाता .नाम] मनमानी सेटिंग्स के रूप में प्रदाता; –

संबंधित मुद्दे