DoconutOptions
Doconut サービスの構成
DoconutOptions (namespace Doconut) は SDK 全体の単一設定オブジェクトです。AddDoconut() 内で一度だけ設定し、シングルトンとして登録されます。
これは配置場所だけでなく形状も変更されたものです。従来の .NET Standard ライブラリでは
DoconutOptions インスタンスがパイプライン時に構築され、
UseDoconut(new DoconutOptions { … }) に渡されていました。ここではミドルウェアはオプションを一切受け取らず、
すべてがサービス登録時に設定されます。
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 の場合、トークンなしのミドルウェア要求に対して 404 ではなくバージョンバナーが返されます。スモークチェックに便利です。運用環境では false のままにしてください。 |
bool | UnsafeMode | false | true の場合、ページ要求時の ASP.NET セッションセキュリティチェックをスキップします。単一ノードの本番環境では false のままにしてください(Core Concepts → Sessions & Security 参照)。以前は UnSafeMode と綴られていました。 |
string | MiddlewarePath | "/doconut" | ページ画像エンドポイントの調整値です。検証は行われますが、パイプライン分岐はマウントされません。実際の UseDoconut() のマッピングとクライアントの BasePath と合わせてください。 |
string | ResourcesPath | "/doconut-res" | 埋め込み JS/CSS/画像/フォントリソースの URL パスプレフィックスです。 |
string | LicensePath | "" | ライセンスファイルへのパス。空の場合は次のライセンスソースへ、さらに見つからなければ自動検出へフォールバックします。検出できない場合は機能制限付きの評価版(透かし入り)になります。 |
string | LicenseContent | "" | 生の XML ライセンス内容(データベース、環境変数、シークレットマネージャーなど)。LicensePath より優先されます。 |
Stream? | LicenseStream | null | 起動時に一度だけ読み取られるストリーム形式のライセンス。上記すべてのソースよりも優先されます。 |
bool | ResetLicense | false | 互換性保持用フラグ。現在の実装では使用されません。ライセンスを差し替えたらアプリケーションを再起動してください。 |
DoconutPluginRegistry | PluginRegistry | — | プラグインの寄稿を収集する読み取り専用レジストリ。ビューアファクトリが使用します。AddPlugin<T>() で登録します。 |
ライセンスの優先順位(サービス登録時に適用): LicenseStream → LicenseContent → LicensePath → 自動検出(Getting Started → License Setup 参照)。
メソッド
AddPlugin<TPlugin>()
DoconutOptions AddPlugin<TPlugin>() where TPlugin : IDoconutPlugin, new()リリース済みのオプトイン Converter と DICOM パッケージ用に使用します。Annotation と通常の Search は組み込みのライセンス機能であり、AddPlugin<TPlugin>() は使用しません。
ファーストパーティプラグイン(Converter、DICOM)を登録します。フルエントインターフェイスで、オプションインスタンスを返します。AddDoconut() はライセンスが欠如している場合、レガシー TRIAL ファイルがある場合、またはプラグイン機能を許可しない有料ライセンスの場合に InvalidOperationException をスローします。期限切れでも一時的/デモ登録は保持され、ランタイムゲートの対象となります(Core Concepts → Plugin System 参照)。
オプトインの Converter ウィジェットは AddConverterWidget() で有効化され、読み取り専用プロパティ ConverterWidget から参照できます。そのオプションは Converter Plugin ページ(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.)を、null のファクトリが渡されたときは ArgumentNullException をスローします。
起動時の検証
AddDoconut() はオプションを 早期失敗 で検証するため、設定ミスは起動時に明確な例外として表れ、リクエスト時の 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 参照)。これはエラーメッセージなしで失敗するクライアント側設定のうちの 2 つのうちの 1 です。
MiddlewarePath は自動的に ASP.NET Core のルートマッパーにはなりません。Doconut がカスタムプレフィックス以下でのみ応答すべき場合は、そのブランチに UseDoconut() をマウントしてください(例: app.Map("/docs-engine", branch => branch.UseDoconut()))。クライアント側の BasePath も同じ URL に設定します。リファレンスアプリケーションは、歴史的な DocImage.axd リクエスト形状を MapWhen ブランチ上で保持し、BasePath: '/' を使用しています。
このページは役に立ちましたか?