There is an error in XML document (4, 2), What is it ?

Pertama kali melihat error ini, jadi pusing. Wah, error apa lagi ini. Usut punya usut, ternyata ini adalah error yang ditimbulkan ketika kita mengambil nilai dari sebuah XML file yang di create menjadi object, tetapi tidak ditemukan. Salah satu cara yang saya gunakan ( dapat info nya dari net ), adalah sebagai berikutĀ  ( step lengkap dari create object sampai ambil value ):

–> Initialize Object :

   1: private void LoadInitialInfoItem()
   2: {
   3:     try
   4:     {
   5:         InitForm request = (InitForm)XmlDeserialize(typeof(InitForm), workflowProperties.Item.File);
   6:         userName = request.username;
   7:         total = request.expense;
   8:         WriteLogFilesInfo("LoadInitialInfoItem", request.username);
   9:         WriteLogFilesInfo("LoadInitialInfoItem", request.expense.ToString());
  10:     }
  11:     catch (Exception ex)
  12:     {
  13:         WriteLogFiles("LoadInitialInfoItem", ex.InnerException.ToString());
  14:         userName = "none";
  15:         total = 0;
  16:     }
  17: }

–> Deserialize Object :

   1: public object XmlDeserialize(Type type, SPFile file)
   2: {
   3:     XmlSerializer serializer = new XmlSerializer(type);
   4:     Stream stream = file.OpenBinaryStream();
   5:     XmlTextReader reader = new XmlTextReader(stream);
   6:     object obj = serializer.Deserialize(reader);
   7:     reader.Close();
   8:     stream.Close();
   9:
  10:     return obj;
  11: }

Ok, itu code awalnya… Tapi ketika dijalankan, muncul error ini : “There is an error in XML document (4, 2)”. Wah sempat pusing. setelah tanya sama om Google, akhirnya dapat informasi bahwa dengan menambahkan perintah position=0 pada stream object, akan solve. Yup.. akhirnya di coba :

   1: public object XmlDeserialize(Type type, SPFile file)
   2: {
   3:     XmlSerializer serializer = new XmlSerializer(type);
   4:     Stream stream = file.OpenBinaryStream();
   5:     stream.Position = 0;    // Ini Tambahannya
   6:     XmlTextReader reader = new XmlTextReader(stream);
   7:     object obj = serializer.Deserialize(reader);
   8:     reader.Close();
   9:     stream.Close();
  10:
  11:     return obj;
  12: }

Alhamdulillah, solve juga. Waktunya melaju ke modul selanjutnya. Hope usefull for reader šŸ˜€