gpt4 book ai didi

c# - .NET 配置文件 : How to check if ConfigSection is present

转载 作者:可可西里 更新时间:2023-11-01 09:01:08 25 4
gpt4 key购买 nike

考虑:

行:

<section name="unity" />

block :

<unity>
<typeAliases />
<containers />
</unity>

假设该行在 .config 文件中可用,而该 block 丢失。

如何以编程方式检查 block 是否存在?

[编辑]

对于那些迅速将问题标记为否定的天才们:

我已经试过了ConfigurationManager.GetSection()

var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

var section = config.GetSection("unity");

var sInfo = section.SectionInformation;

var isDeclared = sInfo.IsDeclared;

如果我弄错了,请纠正我,如果 <configSections>,上面不会返回null已定义(即使缺少实际的统一 block )。

最佳答案

由于 ConfigurationSection 继承自 ConfigurationElement,您可以使用 ElementInformation 属性来判断反序列化后是否找到实际元素。

使用此方法检测配置文件中是否缺少ConfigurationSection元素:

//After Deserialization
if(customSection.ElementInformation.IsPresent == false)
Console.WriteLine("Section Missing");

要确定某个元素是否丢失,您可以使用该部分中的属性(假设它称为“propName”),获取 propName 的 ElementInformation 属性并检查 IsPresent标志:

if(customSection.propName.ElementInformation.IsPresent == false)
Console.WriteLine("Configuration Element was not found.");


当然如果你想检查是否缺少 定义,使用下面的方法:

CustomSection mySection = 
config.GetSection("MySection") as CustomSection;

if(mySection is null)
Console.WriteLine("ConfigSection 'MySection' was not defined.");

-希望这有帮助

关于c# - .NET 配置文件 : How to check if ConfigSection is present,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23430938/

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