コード例 #1
0
        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);
        }
コード例 #2
0
        /// <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"));
        }