gpt4 book ai didi

.net - 您更喜欢 .net 中的哪种配置方法?为什么?

转载 作者:行者123 更新时间:2023-12-03 13:18:38 27 4
gpt4 key购买 nike

关闭。这个问题是opinion-based .它目前不接受答案。












想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它.

7年前关闭。




Improve this question



  • 您可以使用 App.config;但它只支持键/值对。
  • 您可以使用.Net配置,配置部分;但它可能非常复杂。
  • 您可以自己使用Xml序列化/反序列化;你的课——你的方式。
  • 您可以使用其他方法;他们会是什么? ...

  • 您更喜欢这些或其他方法中的哪一种(如果有)?为什么?

    最佳答案

    当键值对不够时,我使用配置部分,因为它们使用起来并不复杂(除非您需要一个复杂的部分):

    定义您的自定义部分:

            public class CustomSection : ConfigurationSection
    {
    [ConfigurationProperty("LastName", IsRequired = true,
    DefaultValue = "TEST")]
    public String LastName
    {
    get { return (String)base["LastName"]; }
    set { base["LastName"] = value; }
    }

    [ConfigurationProperty("FirstName", IsRequired = true, DefaultValue =
    "TEST")]
    public String FirstName
    {
    get { return (String)base["FirstName"]; }
    set { base["FirstName"] = value; }
    }

    public CustomSection()
    {

    }
    }

    以编程方式创建您的部分(如果它尚不存在):
               // Create a custom section.
    static void CreateSection()
    {
    try
    {

    CustomSection customSection;

    // Get the current configuration file.
    System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(@"ConfigurationTest.exe");

    // Create the section entry
    // in the <configSections> and the
    // related target section in <configuration>.
    if (config.Sections["CustomSection"] == null)
    {
    customSection = new CustomSection();
    config.Sections.Add("CustomSection", customSection);
    customSection.SectionInformation.ForceSave = true;
    config.Save(ConfigurationSaveMode.Full);
    }
    }
    catch (ConfigurationErrorsException err)
    {
    //manage exception - give feedback or whatever
    }

    }

    以下 CustomSection 定义和实际的 CustomSection 将为您创建:
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    <configSections>
    <section name="CustomSection" type="ConfigurationTest.CustomSection, ConfigurationTest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" allowLocation="true" allowDefinition="Everywhere" allowExeDefinition="MachineToApplication" overrideModeDefault="Allow" restartOnExternalChanges="true" requirePermission="true" />
    </configSections>
    <CustomSection LastName="TEST" FirstName="TEST" />
    </configuration>

    现在检索您的部分属性:
        CustomSection section = (CustomSection)ConfigurationManager.GetSection("CustomSection");
    string lastName = section.LastName;
    string firstName = section.FirstName;

    关于.net - 您更喜欢 .net 中的哪种配置方法?为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/117407/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com