gpt4 book ai didi

c# - 将 App.Config 数据解析为对象列表

转载 作者:行者123 更新时间:2023-11-30 20:57:25 26 4
gpt4 key购买 nike

首先,我不确定解决此问题的最佳方法是什么,但这是我的场景,我有大量帐户需要在测试套件中读取。我打算将它们以 xml 格式存储在 app.config 文件中,并以这种方式读取帐户。这是最好的方法吗?我应该改用 JSON 吗?无论如何,我在这里尝试遵循这种方法:

http://www.codeproject.com/Articles/6730/Custom-Objects-From-the-App-Config-file虽然我使用 ConfigurationManager.GetSection();而不是 ConfigurationSettings.GetConfig() 因为它已被弃用。但是,我必须下载一个自定义的 ConfigSectionHandler,我在尝试使用它时总是遇到空指针异常。

我尝试解析的 xml 格式为:

<testConfig>
<accounts>
<account>
<name>foo</name>
<password>bar</password>
<description/>cool account</description>
</account>
<account>
<name>bar</name>
<password>foo</password>
<description/>uncool account</description>
</account>
</accounts>
</testConfig>

如果我能将它解析成一个 Account 对象列表就好了,我已经定义了 Account 类

最佳答案

试试这个:

使用 var xDoc = XDocument.Parse(xmlString);如果您将 XML 加载到字符串并将其放入 XDocument 中。但是,您可以简单地使用 var xDoc = XDocument.Load(@"XMLPathGoesHere");直接加载xml。

示例帐户对象:

public class Account
{
public string Name { get; set; }
public string Password { get; set; }
public string Description { get; set; }
}

然后使用下面的 LINQ 查询:

var accounts = (from xElem in xDoc.Descendants("account")
select new Account()
{
Name = xElem.Element("name").Value ?? string.Empty,
Password = xElem.Element("password").Value ?? string.Empty,
Description = xElem.Element("description").Value ?? string.Empty
}).ToList();

请同时记下您的 XML 部分,<description/>uncool account</description> .我猜这部分应该是<description>uncool account</description> .

我的 LINQ Pad Dump 的结果

enter image description here

关于c# - 将 App.Config 数据解析为对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16826195/

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