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(); }
/// <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); }