私は XMLSerialization を初めて使用し、近くに助けてくれる人がいないので、ここに XMLSerialize/Deserialize したいコードの一部とエラー自体があります。
私は3つのクラスを持っています:
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 を作成すると、このエラーが発生します (以下の russina からの翻訳):
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 を持っているので、ロシア語のメッセージは次のようなものです。翻訳はほぼ文字通りなので、覚えておいてください。
単純な「XMLライター」でクラス「ドクター」を書くことができるので、誰かが私を助けてくれることを願っていますが、20行ではなく1行で保存できる限り、(私が思うに)意味がありません。
みんなありがとう。
Upadte:すべてのクラスを実行しました - public。今、文字列でエラーが発生しています: 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% 正しいです。ファイルを作成する代わりに、既存のファイルに何かを書き込もうとしているような気がします。
ところで、私は今それを行うことができないため、評判を上げて感謝することができずに申し訳ありません. しかし、今のところ「口頭での感謝」をしてください:)