我是XMLSerialization的新手,並且沒有人會幫助我解決它,所以這裏是我想要的XMLSerialize/Deserialize的代碼的一部分,並且是一個錯誤本身。C#XMLSerialization錯誤,System.InvalidOperationException
我有三類:
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下面的翻譯):
「不正確的操作系統:System.InvalidOperation例外情況: Clinic.doctor不需要任何服務。 Возможнаобработка толькообщихтипов。 в System.Xml.Serialization.TypeDesc.CheckSupported()в System.Xml.Serialization.TypeScope.GetTypeDesc(類型類型,的MemberInfo 源,布爾directReference,布爾throwOnError)в System.Xml.Serialization.ModelScope.GetTypeModel(型類型,布爾 directR eference)в System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(類型 類型,XmlRootAttribute根,字符串defaultNamespace)в System.Xml.Serialization.XmlSerializer..ctor(型型,字符串 defaultNames步伐) System.Xml.Serialization.XmlSerializer..ctor(Type type) Clinic.Clinic.saveDoctorInfo() d:\ Dropbox \ CSharpHomeWork \ ExamTask \ Cl Clinic.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的俄語版本,因此對俄羅斯的消息告訴是這樣的:」 Unhandeled異常:.......:Clinic.doctor不可用,因爲保護它的水平。 「 翻譯的幾乎文字,所以請記住,
希望有人會幫助我,因爲我可以用簡單的」XML編寫器「編寫類」醫生「,但仍然沒有任何意義( 。因爲我認爲),據我可以用一條線將其保存,而不是20
謝謝你們
UPADTE:只是做了所有的類 - 大衆現在我得到錯誤的字符串: TextWriter WriteFileStream = new StreamWriter(「doctors /」+ d.firstName + d.lastName +「.xml」);
It sais like:
未處理的異常:System.IO.DirectoryNotFoundException:無法找到路徑的一部分 「d:\ Dropbox的\ CSharpHomeWork \ ExamTask \診所\ BIN \調試\醫生\安德斯 onNeo.xml」。
路徑是100%正確的。我只是覺得不是創建一個文件,而是試圖在已經存在的文件中寫一些東西。
順便說一句,抱歉,我不能以聲譽感謝你,因爲我現在不能那樣做。但現在我的「口頭感謝」:)
謝謝,完成。但是現在我對同一個代碼串有一個新問題。它似乎沒有找到指定的路徑。即使這條道路是100%正確的。 – Kamilius 2013-03-23 13:17:28
醫生\目錄是否已經存在? StreamWriter不會爲您創建目錄。 – 2013-03-23 13:48:09
是的,我創建它manualy。 – Kamilius 2013-03-23 14:16:13