Beispiel #1
0
 internal override void PostLoadInitOptionalFields()
 {
     logger.ConditionalDebug("PostLoadInitOptionalFields");
     pBDQ.PostLoadInitOptionalFields();
     foreach (ColConfWin ccf in colors.Values)
     {
         ccf.PostLoadInitOptionalFields();
     }
     sylConf.PostLoadInitOptionalFields();
     unsetBeh.PostLoadInitOptionalFields();
     _duoConf?.PostLoadInitOptionalFields();
     _arcConf.PostLoadInitOptionalFields();
     ponctConf.PostLoadInitOptionalFields();
 }
Beispiel #2
0
        /// <summary>
        /// Execute une "deep copy" de l'objet, c'est à dire que tous les éléments attachés à <c>this</c> sont copiés
        /// dans une nouvelle instance
        /// </summary>
        /// <returns>Une copie exacte de <c>this</c> qui n'a rien en commun avec ce dernier. Retourne <c>null</c>
        /// en cas d'erreur.</returns>
        public DuoConfig DeepCopy()
        {
            logger.ConditionalDebug("DeepCopy");
            DuoConfig toReturn = null;

            try
            {
                using (MemoryStream stream = new MemoryStream())
                {
                    BinaryFormatter formatter = new BinaryFormatter();
                    formatter.Serialize(stream, this);
                    stream.Position = 0;
                    toReturn        = (DuoConfig)formatter.Deserialize(stream);
                    toReturn.PostLoadInitOptionalFields();
                }
            }
            catch (Exception e) when(e is IOException || e is SerializationException)
            {
                logger.Error("Impossible d'effectuer une copie de la \'DuoConfig\'. Erreur: {0}, Stack: {2}",
                             e.Message, e.StackTrace);
            }
            return(toReturn);
        }