我是 XMLSerialization 的新手,附近没有人可以帮助我,所以这是我想要 XMLSerialize/Deserialize 的一部分代码,以及一个错误本身。
我有一个三类:
public class Contacts
{
public string country;
public string city;
public string street;
public int houseNumber;
public int flatNumber;
public int phoneNumber;
public Contacts(){...};
public Contacts(string cntry, string city, string str, int houseNum, int flatNum, int phoneNum){...};
public override string ToString(){...};
}
public class SimpleHuman
{
public string firstName;
public string lastName;
public int age;
public string sex;
public Contacts contacts;
public SimpleHuman(){...};
public SimpleHuman(string fn, string ln, int a, string s, Contacts c){...};
public override string ToString(){...};
}
public class doctor : SimpleHuman
{
public DateTime contractExpirationDate;
public int idNumber;
public List<int> doctorPatients;
public doctor(){...};
public doctor(string name, string surname, int age, string sex, int doctorID, Contacts c):base(name, surname, age, sex, c){...};
public override string ToString(){...};
}
问题是,当我尝试将类“医生”序列化为 XML 文件时:
XmlSerializer SerializerDoc = new XmlSerializer(typeof(doctor));
foreach(doctor d in doctorList)
{
TextWriter WriteFileStream = new StreamWriter("doctors/" + d.firstName + d.lastName + ".xml");
SerializerDoc.Serialize(WriteFileStream, d);
WriteFileStream.Close();
}
我在创建 TextWriter 时遇到此错误(来自以下俄罗斯的翻译):
Clinic.launchMenu() в d:\Dropbox\CSharpHomeWork\ExamTask\Clinic\Prog ram.cs:строка 463 в Clinic.Program.Main(String[] args) в d:\Dropbox\CSharpHomeWork\ExamTask\Cli nic\Program .cs:строка 870 按任意键继续。. 。”
我有一个俄语版本的 WIN7,所以俄语上的消息是这样的:“未处理的异常:.......:Clinic.doctor 不可用,因为它的保护级别。只能处理泛型类型。” 翻译几乎是字面意思,所以请记住。
希望有人能帮助我,因为我可以用简单的“XML Writer”编写“医生”类,但仍然没有意义(我认为),只要我可以用一行而不是 20 行保存它。
多谢你们。
Upadte:刚刚上完所有的课——公开课。现在我在字符串上遇到错误: TextWriter WriteFileStream = new StreamWriter("doctors/" + d.firstName + d.lastName + ".xml");
It sais like:
未处理的异常:System.IO.DirectoryNotFoundException:未能找到路径“D:\Dropbox\CSharpHomeWork\ExamTask\Clinic\bin\Debug\doctors\Anders onNeo.xml”的一部分。
路径是 100% 正确的。我只是觉得不是创建一个文件,而是试图在已经存在的文件中写一些东西。
顺便说一句,对不起,我不能以声望感谢你,因为我现在不能这样做。但是现在有我的“口头感谢”:)