DoconutOptions
Налаштування сервісів Doconut
DoconutOptions (простір імен Doconut) — це єдиний об’єкт конфігурації для всього SDK. Ви налаштовуєте його один раз, у AddDoconut(), і він реєструється як singleton.
builder.Services.AddDoconut(options =>
{
options.LicensePath = "Doconut.Viewer.lic";
options.UnsafeMode = false;
options.ShowDoconutInfo = false;
options.AddPlugin<Doconut.Plugins.Dicom.DicomPlugin>();
});Властивості
| Тип | Властивість | За замовчуванням | Опис |
|---|---|---|---|
bool | ShowDoconutInfo | false | Коли true, запит middleware без токену повертає банер з версією (Doconut <version> is running on <host>) замість 404. Корисно для швидкої перевірки; залишайте false у продакшн. |
bool | UnsafeMode | false | Коли true, пропускає перевірку безпеки ASP.NET-сесії при запитах сторінок. Залишайте false у продакшн (див. Core Concepts → Sessions & Security). |
string | MiddlewarePath | "/doconut" | Значення координації для кінцевої точки page-image. Воно перевіряється, але не монтує гілку конвеєра; тримайте його узгодженим з фактичною мапінгом UseDoconut() та клієнтським BasePath. |
string | ResourcesPath | "/doconut-res" | Префікс URL‑шляху для вбудованих ресурсів JS/CSS/зображень/шрифтів. |
string | LicensePath | "" | Шлях до файлу ліцензії. Порожньо → наступне джерело ліцензії, потім авто‑виявлення; якщо нічого не знайдено → стан оцінки з водяним знаком без можливостей. |
string | LicenseContent | "" | Сирий XML‑вміст ліцензії (база даних, змінна середовища, менеджер секретів). Має пріоритет над LicensePath. |
Stream? | LicenseStream | null | Ліцензія у вигляді потоку, читається один раз під час запуску. Має пріоритет над обома іншими джерелами. |
bool | ResetLicense | false | Зарезервований прапорець сумісності. Поточна реалізація .NET 6 його не використовує; перезапустіть застосунок після заміни ліцензії. |
DoconutPluginRegistry | PluginRegistry | — | Реєстр лише для читання, що збирає внески плагінів; використовується фабрикою переглядачів. Заповнюється через AddPlugin<T>(). |
Пріоритет ліцензій (застосовується під час реєстрації сервісу): LicenseStream → LicenseContent → LicensePath → автоматичне виявлення (див. Getting Started → License Setup).
Методи
AddPlugin<TPlugin>()
DoconutOptions AddPlugin<TPlugin>() where TPlugin : IDoconutPlugin, new()Використовуйте цей метод для випущених opt-in пакетів Converter та DICOM. Анотація та звичайний Search — вбудовані ліцензовані функції і не використовують AddPlugin<TPlugin>().
Реєструє плагін першої сторони (Converter, DICOM). Fluent — повертає екземпляр опцій. AddDoconut() викидає InvalidOperationException при відсутній ліцензії, застарілому файлі TRIAL або платній ліцензії, яка не надає можливості плагіна. Тимчасові/демо‑реєстрації зберігаються після закінчення терміну і підлягають runtime‑gate (див. Core Concepts → Plugin System).
Віджет opt-in Converter активується за допомогою AddConverterWidget() і доступний через властивість лише для читання ConverterWidget; його параметри задокументовані на сторінці плагіна Converter (Plugins → Converter Plugin).
RegisterViewer(extension, factory, defaultConfig?)
DoconutOptions RegisterViewer(
string extension, // ".myext" — leading dot optional
Func<IFormatViewer> factory,
Func<BaseConfig>? defaultConfig = null)Реєструє кастомний переглядач для розширення файлу. Кастомні переглядачі мають пріоритет над вбудованими та плагін‑переглядачами і не залежать від ліцензії. Якщо defaultConfig пропущено і документ відкривається без явної конфігурації, використовується ImageConfig.
Викидає ArgumentException (Extension must be a non-empty file extension.) для порожнього розширення і ArgumentNullException для null‑фабрики.
Перевірка під час запуску
AddDoconut() перевіряє параметри fail-fast, тому помилкова конфігурація проявляється як чітке виключення під час запуску, а не як заплутані 404 під час запиту:
DoconutOptions.MiddlewarePath must be a non-empty path starting with '/'.
DoconutOptions.ResourcesPath must be a non-empty path starting with '/'.
DoconutOptions.MiddlewarePath and ResourcesPath must be different paths.Загальні конфігурації
// Production: explicit license, everything locked down (all security defaults)
builder.Services.AddDoconut(options =>
{
options.LicenseContent = builder.Configuration["Doconut:License"] ?? "";
});
// Custom paths (e.g. to avoid a route conflict)
builder.Services.AddDoconut(options =>
{
options.MiddlewarePath = "/docs-engine";
options.ResourcesPath = "/docs-assets";
});Коли ви змінюєте ResourcesPath, тримайте ResPath клієнтського віджету в синхронізації (див. ViewerConfig).
MiddlewarePath не є автоматичним мапером маршрутів ASP.NET Core. Якщо Doconut має відповідати лише під кастомним префіксом, змонтуйте UseDoconut() на цій гілці (наприклад за допомогою app.Map("/docs-engine", branch => branch.UseDoconut())) і встановіть клієнтський BasePath на той самий URL.
Чи була ця сторінка корисною?