2010-05-21 13 views
7

मैं वर्तमान में उन परियोजनाओं के पुनर्लेखन के लिए अपने विकल्पों का मूल्यांकन कर रहा हूं जिन पर मैं काम कर रहा हूं और मैं अपनी app.config फ़ाइलों की स्ट्रिंग-टाइप प्रकृति से थोड़ा उलझन में हूं।ऐप। कॉनफिग या एक्सएएमएल

मैं एक अधिक संरचित दृष्टिकोण को ले जाना चाहते हैं, तो मैं दो विकल्प हैं: app.config

  • स्क्रैप app.config में

    • उपयोग कस्टम SectionHandlers और बदले XAML का उपयोग करें।

    मैं इस पर आपकी राय और डरावनी कहानियां प्राप्त करना चाहता हूं, इसके लिए एक्सएएमएल का उपयोग करने के पेशेवर और विपक्ष क्या हैं?

    चीयर्स, फ्लोरियन

  • +0

    +1 कॉन्फ़िगरेशन के लिए Xaml का उपयोग करने के दिलचस्प विचार के लिए। – AnthonyWJones

    +0

    बस ध्यान दिया कि Jebrains Resharper 2016.1 * .DotSettings.User फ़ाइल में समाधान सेटिंग्स को संग्रहीत करने के लिए xaml का उपयोग करता है। महान दिमाग... –

    उत्तर

    3

    हम config फ़ाइलें मैं app.config का प्रयोग करेंगे के बारे में बात कर रहे हैं? क्यूं कर? यही वह है जिसका मतलब है। अगर हम संसाधनों (चित्रों, संदेशों) के बारे में बात कर रहे हैं तो मैं उन्हें एक एक्सएएमएल संसाधन निर्देशिका में डाल दूंगा।

    वेब पर एक दिशानिर्देश उपलब्ध है जहां पर रखा गया है, लेकिन पिछली बार मैंने चेक किया था और अभी भी app.config afaik का उल्लेख नहीं किया गया था।

    लेकिन क्या विकास के प्रयास के मामले में आप के लिए सबसे अच्छा काम करता :)

    1

    एक आधा दूसरे के एक दर्जन से अधिक के 6 है।

    यदि आप एक्सएमएल का उपयोग करते हैं तो आपको कक्षाओं के उदाहरणों का एक सेट बनाना होगा, जिनमें से ज़ैमल बनायेगा।

    यदि आप कस्टम सेक्शन हैंडलर का उपयोग करते हैं तो आपको अभी भी कक्षा के उदाहरण बनाने की आवश्यकता होगी, जिनमें से ये अनुभाग प्रतिनिधित्व करेंगे। आपको सेक्शनहैंडलर भी बनाना होगा।

    1 - 0 Xaml के लिए।

    Xaml के मामले में हालांकि आपको स्टार्टअप पर xaml लोड करने और अपने ऐप में कॉन्फ़िगरेशन तक पहुंचने के लिए अपना स्वयं का इन्फ्रास्ट्रक्चर प्रदान करना होगा।

    दूसरी तरफ सेक्शन हैंडलर का उपयोग कर मौजूदा .NET कॉन्फ़िगरेशन प्रबंधक इन तक पहुंचने के लिए इन्फ्रास्ट्रक्चर प्रदान करता है।

    1 सभी

    +4

    अगले आदमी आता है और अपने कोड पढ़ता है, वह समझ जाएंगे कि क्या आप कस्टम खंड संचालकों के साथ कर रहे हैं। उन्होंने कहा कि XAML के साथ एक WTF पल मिल जाएगा। 2-1 config। –

    1

    आप .NET 4 के साथ काम कर रहे हैं, जिनकी वजह से आपके पास दो विकल्प गठबंधन नहीं और App.config अंदर XAML डाल?

    <configSections> 
        <section name="SomeType" type="XamlConfigurationSection, …" /> 
    </configSections> 
    
    <SomeType xmlns="clr-namespace:SomeNamespace;assembly=…" 
          xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
        … 
    </SomeType> 
    

    बशर्ते आप एक प्रकार है:

    namespace SomeNamespace 
    { 
        public class SomeType 
        { 
         public SomeType() { … } // XAML requires a parameterless constructor 
         … 
        } 
    } 
    

    और अंत का एक उदाहरण पुनः प्राप्त

    using System.Configuration; 
    using System.Xaml; 
    using System.Xml; 
    
    public class XamlConfigurationSection : IConfigurationSectionHandler 
    { 
        public object Create(object parent, object configContext, XmlNode section) 
        { 
         return XamlServices.Parse(section.OuterXml); 
        } 
    } 
    

    यह कस्टम विन्यास खंड आप किसी भी वस्तु App.config में XAML के रूप में वर्णित शामिल करने के लिए अनुमति देता है इस प्रकार App.config से:

    var objectOfSomeType = ConfigurationManager.GetSection("SomeType") as SomeType; 
    
    संबंधित मुद्दे