ResourceFormatSaver
Обработчик записи собственного формата ресурсов.
Реализуйте подкласс C# с _Recognize, _GetRecognizedExtensions и _Save. Зарегистрируйте экземпляр через ResourceSaver.AddResourceFormatSaver до Save; снимите регистрацию до Dispose. Объявление класса само по себе не заменяет этот жизненный цикл.
ResourceSaver выбирает обработчик по объекту и пути. _Save должен записать данные и вернуть достоверный Error. Флаги, зависимости, UID, атомарная замена и резервные копии не реализуются за вас.
Методы с подчёркиванием предназначены для переопределения. Для обычного сохранения вызывайте ResourceSaver.Save. Описанные значения при отсутствии переопределений относятся к нативному обработчику.
собственный формат ресурсов: полный исполняемый пример C#.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
ResourceFormatSaverКонструктор
public ResourceFormatSaver();Создаёт незарегистрированный обработчик сохранения. Реализуйте подкласс и зарегистрируйте экземпляр в ResourceSaver до Save.
Методы5
_GetRecognizedExtensionsstring[]
public virtual string[] _GetRecognizedExtensions(Resource resource);Перечисляет расширения для сохранения конкретного объекта. Согласуйте результат с _Recognize и не заявляйте расширения для неподдерживаемого типа.
| Имя | Тип | По умолчанию |
|---|---|---|
resource | Resource | — |
resourceОбъект для проверки или сохранения. Проверяйте конкретный поддерживаемый тип, а не только наследование от Resource.
string[]Массив расширений без точки; пустой массив не предоставляет расширений для стандартного выбора.
_Recognizebool
public virtual bool _Recognize(Resource resource);Проверяет поддержку объекта этим saver по его типу и возможностям формата. Путь отдельно проверяется через _RecognizePath. Без переопределения нативный обработчик возвращает false.
| Имя | Тип | По умолчанию |
|---|---|---|
resource | Resource | — |
resourceОбъект для проверки или сохранения. Проверяйте конкретный поддерживаемый тип, а не только наследование от Resource.
booltrue для поддерживаемого объекта. Успешная запись и доступность файла этим не подтверждаются.
_RecognizePathbool
public virtual bool _RecognizePath(Resource resource, string path);Проверяет поддержку пути сохранения для объекта. Без переопределения нативная реализация сравнивает расширение без учёта регистра с _GetRecognizedExtensions(resource). Переопределение заменяет эту проверку; выбор формата ещё не открывает файл.
| Имя | Тип | По умолчанию |
|---|---|---|
resource | Resource | — |
path | string | — |
resourceОбъект для проверки или сохранения. Проверяйте конкретный поддерживаемый тип, а не только наследование от Resource.
pathПуть файла собственного формата: логический asset:// или user:// согласно месту хранения.
booltrue, если путь подходит формату. Это выбор обработчика, не проверка содержимого или прав доступа.
_SaveError
public virtual Error _Save(Resource resource, string path, uint flags);Записывает объект в собственном формате и возвращает Error. Проверяйте открытие, сериализацию и запись; не возвращайте Ok после отказа. Флаги, атомарная замена и резервные копии не реализуются автоматически.
| Имя | Тип | По умолчанию |
|---|---|---|
resource | Resource | — |
path | string | — |
flags | uint | — |
resourceОбъект для проверки или сохранения. Проверяйте конкретный поддерживаемый тип, а не только наследование от Resource.
pathПуть файла собственного формата: логический asset:// или user:// согласно месту хранения.
flagsБитовая маска ResourceSaver.SaverFlags. Реализуйте подходящие формату флаги или явно отклоните неподдерживаемые.
ErrorError.Ok после успешной записи либо код отказа. Без переопределения нативный обработчик возвращает MethodNotFound.
_SetUidError
public virtual Error _SetUid(string path, long uid);Обновляет UID, сохранённый внутри файла собственного формата. Это отдельная операция от _Save и не переименование пути. Без переопределения нативный обработчик возвращает FileUnrecognized.
| Имя | Тип | По умолчанию |
|---|---|---|
path | string | — |
uid | long | — |
pathПуть файла собственного формата: логический asset:// или user:// согласно месту хранения.
uidНовый числовой UID ресурса. Сохраните его способом, который понимает соответствующий загрузчик формата.
ErrorError.Ok после изменения UID либо конкретный Error при отказе или неподдерживаемом формате.