C#:帮助使用 XML 和多个帐户
C#: help using XML and multiple accounts
我正在处理一些 xml 和 c#,但 运行 遇到了问题,
我有一个名为 xml 的文件:application.login.xml 包含:
<?xml version="1.0" encoding="utf-8" ?>
<account>
<admin>
<username>admin</username>
<password>admin</password>
<recht>admin</recht>
</admin>
<demo>
<username>demo</username>
<password>demo</password>
<recht>user</recht>
</demo>
</account>
但每当我尝试将其读入 class 时:account.cs 我收到以下消息:找不到元素演示、管理员等的架构信息
我用来反序列化的代码是:
XmlSerializer xSer = new XmlSerializer(typeof(account));
Console.WriteLine(xSer.Deserialize(fs));
那么我如何设法将多个帐户存储到 1 个 xml?
class账号的内容是:
namespace bedrijfManagement
{
public class account
{
public string username, password, recht;
}
}
我在名为 admin
或 demo
的 account
class 上没有看到任何属性。看起来您在代码和 XML 中都缺少抽象级别。考虑如下 XML 结构:
<accounts>
<account>
<username>admin</username>
<password>admin</password>
<recht>admin</recht>
</account>
<account>
<username>demo</username>
<password>demo</password>
<recht>user</recht>
</account>
</accounts>
That 应该反序列化为 account
对象的集合,因为这正是它的本质。然后在代码中将其反序列化为一个集合,而不是单个实例:
XmlSerializer serializer = new XmlSerializer(typeof(List<account>));
List<account> accounts = serializer.Deserialize(xmlInput);
您需要创建新的 class 命名帐户
public class Accounts
{
public List<Account> accounts{get;set;}
}
XmlSerializer xSer = new XmlSerializer(typeof(Accounts));
var result = (Accounts) xSer.Deserialize(fs);
你的文件应该像
<accounts>
<account>
<username>admin</username>
<password>admin</password>
<recht>admin</recht>
</account>
<account>
<username>demo</username>
<password>demo</password>
<recht>user</recht>
</account>
</accounts>
如果您使用
XmlSerializer xSer = new XmlSerializer(typeof(List<account>));
xml 文件应该是这样的
<arrayofaccount>
<account>
<username>admin</username>
<password>admin</password>
<recht>admin</recht>
</account>
<account>
<username>demo</username>
<password>demo</password>
<recht>user</recht>
</account>
</arrayofaccount>
我正在处理一些 xml 和 c#,但 运行 遇到了问题, 我有一个名为 xml 的文件:application.login.xml 包含:
<?xml version="1.0" encoding="utf-8" ?>
<account>
<admin>
<username>admin</username>
<password>admin</password>
<recht>admin</recht>
</admin>
<demo>
<username>demo</username>
<password>demo</password>
<recht>user</recht>
</demo>
</account>
但每当我尝试将其读入 class 时:account.cs 我收到以下消息:找不到元素演示、管理员等的架构信息
我用来反序列化的代码是:
XmlSerializer xSer = new XmlSerializer(typeof(account));
Console.WriteLine(xSer.Deserialize(fs));
那么我如何设法将多个帐户存储到 1 个 xml?
class账号的内容是:
namespace bedrijfManagement
{
public class account
{
public string username, password, recht;
}
}
我在名为 admin
或 demo
的 account
class 上没有看到任何属性。看起来您在代码和 XML 中都缺少抽象级别。考虑如下 XML 结构:
<accounts>
<account>
<username>admin</username>
<password>admin</password>
<recht>admin</recht>
</account>
<account>
<username>demo</username>
<password>demo</password>
<recht>user</recht>
</account>
</accounts>
That 应该反序列化为 account
对象的集合,因为这正是它的本质。然后在代码中将其反序列化为一个集合,而不是单个实例:
XmlSerializer serializer = new XmlSerializer(typeof(List<account>));
List<account> accounts = serializer.Deserialize(xmlInput);
您需要创建新的 class 命名帐户
public class Accounts
{
public List<Account> accounts{get;set;}
}
XmlSerializer xSer = new XmlSerializer(typeof(Accounts));
var result = (Accounts) xSer.Deserialize(fs);
你的文件应该像
<accounts>
<account>
<username>admin</username>
<password>admin</password>
<recht>admin</recht>
</account>
<account>
<username>demo</username>
<password>demo</password>
<recht>user</recht>
</account>
</accounts>
如果您使用
XmlSerializer xSer = new XmlSerializer(typeof(List<account>));
xml 文件应该是这样的
<arrayofaccount>
<account>
<username>admin</username>
<password>admin</password>
<recht>admin</recht>
</account>
<account>
<username>demo</username>
<password>demo</password>
<recht>user</recht>
</account>
</arrayofaccount>