DoconutExtensions

サービスとミドルウェアの登録

DoconutExtensions(名前空間 Doconut.Middleware)は、すべての Doconut ホストが行う 3 つの呼び出し(サービス登録 1 件とミドルウェア登録 2 件)を提供する static クラスです。

csharp
builder.Services.AddDoconut(options => { /* … */ });
// …
app.UseDoconutResources(); // BEFORE UseDoconut()
app.UseDoconut();

AddDoconut

text
IServiceCollection AddDoconut(this IServiceCollection services, Action<DoconutOptions>? configure = null)

DoconutOptions を構築し、失敗時にすぐに検証します(DoconutOptions → 起動時の検証 を参照)、そして完全なサービスグラフを登録します:

サービスライフタイム役割
DoconutOptionsSingleton設定オブジェクト
IViewerFactorySingleton拡張子をフォーマットビューアにマッピングします
IDocumentSessionManagerSingletonトークン → セッションキャッシュ(IMemoryCache も登録されます)
IDoconutLicenseServiceSingleton起動時に一度だけライセンスを読み込みます(優先順位: LicenseStreamLicenseContentLicensePath → 自動検索)
PageImageServiceSingletonページ画像パイプライン(透かし/回転/スケール/注釈)
ドキュメントセキュリティ(アクセスストア)Singletonトークンとセッションのバインディングのための権限付与
ViewerTransient公開のオープン/クローズファサード
DocumentConverterTransient変換ファサード — Converter プラグインが必要です
Health check "doconut"ASP.NET のヘルスチェックを通じてライセンス/有効期限の状態を報告します

知っておくべき 2 つの動作:

  • Converter はプラグインが必要です。 options.AddPlugin<ConverterPlugin>() を使用せずに DocumentConverter を解決しようとすると、次の例外がスローされます:
text
InvalidOperationException: No IDocumentConverter is registered. Add the converter plugin: options.AddPlugin<Doconut.Plugins.Converter.ConverterPlugin>().
  • プラグインの権利は起動時に検証されます。 ライセンスが欠如している、レガシーな TRIAL ファイルがある、または登録されたプラグインの機能がない有料ライセンスの場合、AddDoconut() の時点で失敗します。Temporary/Demo 登録は有効期限が過ぎても存続しますが、実行時のゲートは期限切れの機能を取り消します。

ヘルスチェックは標準の ASP.NET Core メカニズムと統合されます — ライセンス状態をヘルスエンドポイントで確認したい場合はマッピングしてください:

csharp
app.MapHealthChecks("/health");

UseDoconut

text
IApplicationBuilder UseDoconut(this IApplicationBuilder app)

Doconut ページ画像ミドルウェアを追加します。?token= クエリパラメータを含むすべてのリクエストに応答します — ページ、サムネイル、検索、注釈、ページアクション(完全なリクエストテーブルは Core Concepts → How the Viewer Works にあります)。UnsafeModefalse の場合、ドキュメントセキュリティ層が自動的にその前に組み込まれます。

参照サンプルでは、ウィジェットのリクエストをパスブランチを通してルーティングします:

csharp
app.MapWhen(
    ctx => ctx.Request.Path.Value?.EndsWith("DocImage.axd", StringComparison.OrdinalIgnoreCase) == true,
    branch => branch.UseDoconut());

UseDoconutResources

text
IApplicationBuilder UseDoconutResources(this IApplicationBuilder app)

DoconutOptions.ResourcesPath(デフォルトは /doconut-res)で埋め込みの JS、CSS、画像、フォントを提供します。これらは Viewer.ReferenceCss() / ReferenceScripts() がタグを生成するファイルです。

必ず UseDoconut() の前に呼び出してください。 ビューア領域が空のままで、ブラウザコンソールに /doconut-res/... の 404 が表示される場合、この呼び出しが欠如しているか、位置が間違っています。

Ordering recap

csharp
app.UseRouting();
app.UseSession();          // required when UnsafeMode = false
app.UseDoconutResources(); // 1st Doconut call
app.UseDoconut();          // 2nd Doconut call (or via a MapWhen branch)

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