private static Dictionary <UInt64, T> GetProperty <T>(ISaveData obj, string name) { var type = ((TypeDataAttribute)obj.GetType().GetCustomAttributes(typeof(TypeDataAttribute), false)[0]).Type; IBase @base = null; switch (type) { case FileTypes.Level: @base = SaveLevelData; break; case FileTypes.User: @base = SaveUserData; break; } var typebase = @base.GetType(); var property = typebase.GetProperty(name); if (property == null) { throw new Exception("Отсутвует поле сохранения"); } Dictionary <UInt64, T> pairs = (Dictionary <UInt64, T>)property.GetValue(@base); return(pairs); }
/// <summary> /// Formats the <see cref="BrandonException.Message"/> /// </summary> /// <param name="saveData"></param> /// <param name="message"></param> /// <returns></returns> private static string GetMessage( ISaveData saveData = null, string message = "Something went wrong with save data management!" ) { var lines = new List <string>() { message }; if (saveData != null) { lines.Add($"{nameof(saveData.Nickname)}: {saveData.Nickname}"); lines.Add($"{saveData.GetType()}:\n{saveData}"); } return(lines.JoinString("\n")); }