예제 #1
0
        /// <inheritdoc cref="QueueFromFile{T}"/>
        /// <summary>
        /// Создаёт потокобезопасную очередь строк из текстового файла. Десериализация проводится построчно.
        /// </summary>
        /// <returns>Возвращает новую потокобезопасную очередь строк</returns>
        public static LockedQueue QueueFromFile(string filePath, bool includeComments = false, bool trim = true)
        {
            var result = new LockedQueue();

            ReadAndAppend(result, filePath, includeComments, trim);
            return(result);
        }
예제 #2
0
        /// <summary>
        /// Создаёт потокобезопасную очередь объектов из текстового файла. Десериализация проводится построчно.
        /// </summary>
        /// <param name="filePath">Путь до файла</param>
        /// <param name="ui">Потокобезопасный интерфейс, нужен для ведения лога в случае ошибки десериализации</param>
        /// <param name="includeComments">Если true, то строки с комментариями тоже будут включены в выборку для десериалиализации.</param>
        /// <param name="trim">Очищать начало и конец строк от отступов и пробелов.</param>
        /// <returns>Возвращает новую потокобезопасную очередь объектов</returns>
        public static LockedQueue <T> QueueFromFile <T>(string filePath, ThreadSafeUI ui = null,
                                                        bool includeComments             = false, bool trim = true)
            where T : IStringSerializeable, new()
        {
            var result = new LockedQueue <T>();

            ReadAndDeserialize(result, filePath, ui, includeComments, trim);
            return(result);
        }