Esempio n. 1
0
        public CValise2iSerializable(I2iSerializable objetSource)
        {
            MemoryStream           stream     = new MemoryStream();
            BinaryWriter           writer     = new BinaryWriter(stream);
            CSerializerSaveBinaire serializer = new CSerializerSaveBinaire(writer);

            serializer.TraiteObject(ref objetSource);
            m_data = stream.GetBuffer();

            writer.Close();
            stream.Close();
        }
Esempio n. 2
0
 public static void CopieTo(I2iSerializable source, I2iSerializable cible,
                            Dictionary <Type, object> tableObjetsPourSerializer)
 {
     try
     {
         if (source == null)
         {
             return;
         }
         if (cible == null)
         {
             return;
         }
         MemoryStream   stream     = new MemoryStream();
         BinaryWriter   writer     = new BinaryWriter(stream);
         C2iSerializer  serializer = new CSerializerSaveBinaire(writer);
         CResultAErreur result     = source.Serialize(serializer);
         if (result)
         {
             stream.Seek(0, SeekOrigin.Begin);
             BinaryReader reader = new BinaryReader(stream);
             serializer = new CSerializerReadBinaire(reader);
             if (tableObjetsPourSerializer != null)
             {
                 foreach (KeyValuePair <Type, object> keyVal in tableObjetsPourSerializer)
                 {
                     serializer.AttacheObjet(keyVal.Key, keyVal.Value);
                 }
             }
             result = cible.Serialize(serializer);
             reader.Close();
         }
         writer.Close();
         I2iCloneableAvecTraitementApresClonage clone = cible as I2iCloneableAvecTraitementApresClonage;
         if (clone != null)
         {
             clone.TraiteApresClonage(source);
         }
     }
     catch (Exception e)
     {
         string strTmp = e.ToString();
         Console.WriteLine(I.T("Serializable copy error @1|30043 ", strTmp));
     }
 }
        //----------------------------------------------------------------------------------
        public static CResultAErreur SaveToFile(I2iSerializable objet, string strSignatureFichier, string strNomFichier)
        {
            CResultAErreur result = CResultAErreur.True;
            FileStream     stream = null;

            try
            {
                stream = new FileStream(strNomFichier, FileMode.Create, FileAccess.Write, FileShare.None);
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
                result.EmpileErreur(I.T("File opening error|30060"));
            }
            try
            {
                BinaryWriter writer = new BinaryWriter(stream);
                writer.Write(strSignatureFichier);
                CSerializerSaveBinaire serializer = new CSerializerSaveBinaire(writer);
                result = objet.Serialize(serializer);
                writer.Close();
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
                result.EmpileErreur(I.T("File writing error|30063"));
            }
            finally
            {
                try
                {
                    stream.Close();
                }
                catch {}
            }
            return(result);
        }