FileContent - класс

Базовый класс для контента файла.

Definition

Пространство имён: Tessa.Files
Сборка: Tessa (в Tessa.dll) Версия: 4.0.4
C#
public abstract class FileContent : NotificationObject, 
	IFileContent, INotifyPropertyChanged, IAsyncDisposable, IAsyncInitializable, ISealable
Inheritance
Object    NotificationObject    FileContent
Derived
Implements
INotifyPropertyChanged, IAsyncDisposable, IFileContent, IAsyncInitializable, ISealable

Конструкторы

FileContent Создаёт экземпляр класса с заданными параметрами. После вызова конструктора объекта требуется инициализировать методом InitializeAsync(CancellationToken).

Свойства

Cancellation Объект, который может использоваться для отмены асинхронных операций с содержимым файла, если оно поддерживает отмену. На текущий момент это доступно для загрузки содержимого версии файла.
HasCurrentContentData Признак, который определяет доступность текущего контента для получения, например, по наличию файла в локальной папке. Свойство HasData определяет доступность как текущего контента, так и родительского. Связь родительский-дочерний актуально для последней версии файла.
HasData Возвращает признак того, что контент файла был установлен методом SetAsync(Stream, CancellationToken).
IsBoundToFileSource Признак того, что контент был создан источником файлов, а не передан снаружи, поэтому для оптимизации обращения к содержимому можно использовать источник файлов. Обычно актуально для Remote-контента.
IsDirty Признак того, что контент мог быть изменён. Следует установить значение равным true перед открытием контента на редактирование во внешней программе. Определить точно, был ли изменён контент, можно, вызвав метод IsModifiedAsync(CancellationToken).
IsDisposed Признак того, что контент был освобождён и объект нельзя использовать.
IsLocal Признак того, что контент является локальным, т.е. к нему можно получить локальный путь посредством метода GetLocalFilePath.
IsSealedПризнак того, что объект был защищён от изменений.
Parent Родительский контент или null, если родительский контент отсутствует. Если производится запрос текущего контента, и он не был установлен, то он сначала локально копируется из родительского, если тот существует, а затем считывается локально.
RequestInfo Дополнительная пользовательская информация, передаваемая в запросы к серверу, которые относятся к загрузке содержимого файла или версии, которые сохраняются в текущем объекте. Рекомендуется, чтобы все данные были сериализуемых типов (в соответствии с типовой BSON-сериализацией в системе). Такие данные могут перезаписать данные из RequestInfo.
Size Размер контента файла в байтах или 0, если контент ещё не был загружен. Проверить, был ли загружен контент, можно, обратившись к свойству HasData.
Uri Ссылка к контенту файла, который может быть доступен как локально (на диске), так и удалённо (сетевой ресурс). Значение может быть равно null, если контент недоступен по ссылке.

Методы

CheckDisposed Выбрасывает исключение [ObjectDisposedException], если ресурсы текущего объекта были освобождены.
DisposeAsyncPerforms application-defined tasks associated with freeing, releasing, or resetting unmanaged resources asynchronously.
DisposeAsync(Boolean)Освобождает ресурсы, занимаемые объектом.
EnsureLocalUpdatedAsync Удостоверяет, что файл будет загружен локально и доступен по пути GetLocalFilePath, если файл является локальным IsLocal. Если файл не локальный, то метод не выполняет действий.
EnterLockAsync Выполняет вход в блок, в пределах которого нет других обращений к контенту файла. Вызовите метод в блоке using(await content.EnterLockAsync().ConfigureAwait(false)).
EqualsDetermines whether the specified object is equal to the current object.
(Унаследован от Object)
FinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Унаследован от Object)
GetAsync Открывает и возвращает поток с контентом файла. Если контент файла отсутствует, то вызывает исключение InvalidOperationException. Поэтому перед получением контента можно обратиться к свойству HasData.
GetContentFromFilePathFuncAsync Возвращает функцию, которая получает контент файла по заданному пути. Функцию можно использовать при создании контента RemoteFileContent.
GetCoreAsync Возвращает поток с содержимым файла. Если файл не был загружен, то может быть выброшено исключение.
GetHashCodeServes as the default hash function.
(Унаследован от Object)
GetLocalFilePath Возвращает локальный путь к контенту файла, если контент доступен локально. Если контент не доступен локально, то вызывает исключение InvalidOperationException. Поэтому перед вызовом метода можно обратиться к свойству IsLocal.
GetLocalFilePathCore Возвращает путь к файлу с локальным контентом, даже если он ещё не был загружен, или null, если контент не представлен локальным файлом.
GetSizeFromFilePathFuncAsync Возвращает функцию, которая получает размер файла по заданному пути. Функцию можно использовать при создании контента RemoteFileContent.
GetTypeGets the Type of the current instance.
(Унаследован от Object)
InitializeAsyncВыполняет асинхронную инициализацию объекта.
InvalidateAsync Удаляет локально загруженный контент, переводя его в начальное состояние. Следующий раз при получении контента он будет заново загружен.
InvalidateCoreAsync Сбрасывает информацию о контенте файла. Например, очищает дату изменения файла. Если контент не является локальным, то может не выполнять действий.
IsModifiedAsync Возвращает признак того, что контент файла на диске был изменён с момента его установки методом SetAsync(Stream, CancellationToken). Для защищённых от изменений объектов метод всегда возвращает false.
IsModifiedCoreAsync

Возвращает признак того, что локальный контент был изменён. Например, был изменён файл на диске по дате изменения.

При изменении контента может быть обновлён его размер, а также он может быть, например, помечен как изменённый в структуре карточки.

MemberwiseCloneCreates a shallow copy of the current Object.
(Унаследован от Object)
OnPropertyChanged(PropertyChangedEventArgs) Уведомляет об изменении свойства с именем, заданным в аргументах события.
(Унаследован от NotificationObject)
OnPropertyChanged(String) Уведомляет об изменении свойства с заданным именем у объекта.
(Унаследован от NotificationObject)
OnPropertyChangedAsync(PropertyChangedEventArgs, Boolean) Уведомляет об изменении свойства с именем, заданным в аргументах события, асинхронно, в соответствии с принятым для текущего объекта поведением. Если есть возможность вызвать событие синхронно, то оно вызывается синхронно. Если объект является моделью представления WPF и текущий поток отличен от потока диспетчера WPF для приложения (основной поток UI), то выполнение асинхронно переключается в этот поток. Если это не так, то событие выполняется синхронно.
(Унаследован от NotificationObject)
OnPropertyChangedAsync(String, Boolean) Уведомляет об изменении свойства с заданным именем у объекта асинхронно, в соответствии с принятым для текущего объекта поведением. Если есть возможность вызвать событие синхронно, то оно вызывается синхронно. Если объект является моделью представления WPF и текущий поток отличен от потока диспетчера WPF для приложения (основной поток UI), то выполнение асинхронно переключается в этот поток. Если это не так, то событие выполняется синхронно.
(Унаследован от NotificationObject)
PrepareContentLocationCoreAsync Подготавливает местоположение контента перед его записью или перемещением в это местоположение. Например, создаёт папку на диске, если контент представлен файлом на диске.
RemoveContentSafeCoreAsync Метод удаляет локальный контент, если он был создан. Если контент не является локальным, то метод не должен выполнять действий. Метод не должен выбрасывать исключений, даже критичных.
RenameAsync Переименовывает файл, в который записывается контент. Если файл ещё не существует, то он будет назван по-другому в момент создания. Метод гарантированно сработает только в том случае, если контент является локальным, т.е. свойство IsLocal возвращает true.
RenameCoreAsync Переименовывает имя контента в соответствии с новым именем файла. Если контент представлен локальным файлом на диске, то метод должен переименовать этот файл. Если контент не является локальным, то метод может не выполнять действий.
SealЗащищает объект от изменений.
SetAsync Открывает и возвращает поток, выполняющий перезапись контента файла.
SetCoreAsync Устанавливает содержимое файла. Если контент запрещено изменять, то может быть выброшено исключение.
SetLocalAsync Устанавливает контент локального файла по заданному пути.
SetLocalCoreAsync Устанавливает локальное содержимое файла, представленное в виде файла на диске, по заданному методу, который получает в параметре путь к файлу на диске и может его создать или изменить некоторым способом. Если содержимое файла не является локальным, то может быть выброшено исключение.
SetRemoteAsync Устанавливает содержимое файла, представленное заданными методами. Если контент запрещено изменять, то может быть выброшено исключение. Метод доступен как для локальных файлов, так и для нелокальных (remote), в т.ч. для файлов большого размера.
SetRemoteCoreAsync Устанавливает содержимое файла, представленное заданными методами. Если контент запрещено изменять, то может быть выброшено исключение. Метод доступен как для локальных файлов, так и для нелокальных (remote), в т.ч. для файлов большого размера.
ToStringReturns a string that represents the current object.
(Унаследован от Object)
UpdateLocalContentFromParentCoreAsync

Обновляет локальный контент на основании контента родительского объекта.

При вызове этого метода гарантируется, что у текущего контента есть родительский контент, в котором присутствуют загруженные данные.

Если контент не локальный, то метод может не выполнять действий, но не должен выбрасывать исключений.

UpdateModifiedCoreAsync Обновляет информацию, на основании которой можно определить, изменялся ли контент. Например, сохраняет время изменения файла, чтобы его можно было сравнить со временем изменения в любой другой момент.
UpdateSizeAsync Обновляет свойство с размером контента Size для загруженных файлов.
UpdateSizeCoreAsync Обновляет размер локального контента. Возвращает true, если размер был обновлён.

События

PropertyChangedСобытие, уведомляющее об изменении свойства с определённым именем у модели представления.
(Унаследован от NotificationObject)

Поля

UnknownSize Неизвестный размер контента.

Методы расширения

Get
(Определяется ComHelper)
Invoke
(Определяется ComHelper)
ResolveRoot Возвращает корневой объект содержимого по свойствам Parent. Возвращает текущий объект content, если у него отсутствует родитель Parent.
(Определяется FileExtensions)
Set
(Определяется ComHelper)
SetRemoteFromPathAsync Устанавливает содержимое IFileContent по физическому файлу, расположенному по заданному пути. Метод доступен и для локального, и для нелокального (remote) содержимого.
(Определяется FileExtensions)

См. также