DoconutOptions

Doconut サービスの構成

DoconutOptions (namespace Doconut) は SDK 全体で使用される単一の構成オブジェクトです。AddDoconut() 内で一度だけ構成し、シングルトンとして登録されます。

csharp
builder.Services.AddDoconut(options =>
{
    options.LicensePath     = "Doconut.Viewer.lic";
    options.UnsafeMode      = false;
    options.ShowDoconutInfo = false;
    options.AddPlugin<Doconut.Plugins.Dicom.DicomPlugin>();
});

プロパティ

TypePropertyDefaultDescription
boolShowDoconutInfofalsetrue の場合、トークンなしのミドルウェア要求は 404 ではなくバージョン バナー(Doconut <version> is running on <host>)を返します。スモークチェックとして便利ですが、本番環境では false のままにしてください。
boolUnsafeModefalsetrue の場合、ページ要求に対する ASP.NET セッションのセキュリティチェックをスキップします。本番環境では false のままにしてください(Core Concepts → Sessions & Security を参照)。
stringMiddlewarePath"/doconut"ページ画像エンドポイントの調整用パスです。検証は行われますが、パイプライン ブランチはマウントされません。実際の UseDoconut() のマッピングおよびクライアントの BasePath と合わせてください。
stringResourcesPath"/doconut-res"埋め込み JS/CSS/画像/フォント リソースの URL パス プレフィックスです。
stringLicensePath""ライセンス ファイルへのパスです。空の場合は次のライセンス ソースへ、さらに見つからなければ自動検出へフォールバックします。検出できない場合は機能制限のある評価版(透かし入り)になります。
stringLicenseContent""生の XML ライセンス コンテンツ(データベース、環境変数、シークレット マネージャーなど)。LicensePath より優先されます。
Stream?LicenseStreamnull起動時に一度だけ読み取られるストリーム形式のライセンスです。上記 2 つのソースよりも優先されます。
boolResetLicensefalse互換性のために予約されたフラグです。現在の .NET 6 実装では使用されません。ライセンスを差し替えた後はアプリケーションを再起動してください。
DoconutPluginRegistryPluginRegistryプラグインの貢献を収集する読み取り専用レジストリです。ビューアー ファクトリが使用します。AddPlugin<T>() で登録します。

ライセンスの優先順位(サービス登録時に適用): LicenseStreamLicenseContentLicensePath → 自動検出(Getting Started → License Setup を参照)。

メソッド

AddPlugin<TPlugin>()

text
DoconutOptions AddPlugin<TPlugin>() where TPlugin : IDoconutPlugin, new()

リリース済みのオプトイン Converter および DICOM パッケージに使用します。Annotation と normal Search は組み込みのライセンス機能であり、AddPlugin<TPlugin>() は使用しません。

ファーストパーティ プラグイン(Converter、DICOM)を登録します。フルエントインターフェイスで、オプション インスタンスを返します。AddDoconut() はライセンスが欠如している場合、レガシー TRIAL ファイルがある場合、またはプラグイン機能が付与されていない有料ライセンスの場合に InvalidOperationException をスローします。Temporary/Demo 登録は有効期限が切れた後も保持され、ランタイム ゲートの対象となります(Core Concepts → Plugin System を参照)。

オプトイン Converter ウィジェットは AddConverterWidget() で有効化され、読み取り専用の ConverterWidget プロパティを通じて提供されます。そのオプションは Converter Plugin ページ(Plugins → Converter Plugin)に記載されています。

RegisterViewer(extension, factory, defaultConfig?)

text
DoconutOptions RegisterViewer(
    string extension,                    // ".myext" — leading dot optional
    Func<IFormatViewer> factory,
    Func<BaseConfig>? defaultConfig = null)

ファイル拡張子に対して カスタム ビューアー を登録します。カスタム ビューアーは組み込みおよびプラグイン ビューアーよりも優先され、ライセンス制限を受けません。defaultConfig を省略し、明示的な設定なしでドキュメントが開かれた場合は ImageConfig が使用されます。

空の拡張子が指定されたときは ArgumentExceptionExtension must be a non-empty file extension.)を、factorynull のときは ArgumentNullException をスローします。

起動時の検証

AddDoconut() はオプションを 早期失敗 で検証するため、設定ミスは起動時に明確な例外として表れ、リクエスト時の 404 で混乱することはありません。

text
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.

一般的な構成例

csharp
// 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 に設定します。

このページは役に立ちましたか?