Chuyển đổi tài liệu ASP.NET Core bằng dependency injection

Một lời gọi, AddDocToolkit(), đăng ký DocToolkit vào dependency injection của ASP.NET Core. Bài này nói về cách cài, các cài đặt, background service và kiểm thử.

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDocToolkit();

var app = builder.Build();

Cài đặt và đăng ký

  • Gói extensions kéo theo gói lõi, nên bạn không cần tham chiếu cả hai.
  • Một lời gọi đăng ký cả 21 interface của gói, mỗi interface là một lớp bọc mỏng quanh lớp static tương ứng.
  • Tên interface chỉ khác lớp static ở chữ I đứng đầu: IPdfEditor bọc PdfEditor.
  • Tất cả đều là singleton, an toàn vì không cái nào giữ trạng thái.
  • Chúng được đăng ký bằng TryAdd, nên bản triển khai của bạn, nếu đăng ký trước, sẽ được dùng.

Cài đặt một lần

  • DocToolkitOptions giữ các cài đặt chung cho cả ứng dụng, nên không phải lặp lại ở mỗi chỗ gọi.
  • AllowRemoteImageDownload là công tắc chính cho ảnh từ xa. Nó là false trừ khi bạn đặt khác.
  • Page đặt khổ giấy một lần. Mặc định là PageSetup.A4.
  • Lời gọi nào chỉ định trang riêng vẫn được ưu tiên hơn cài đặt chung.
  • Các tùy chọn được đọc ở mỗi lần gọi, chứ không phải một lần lúc khởi động. Thay đổi trong appsettings.json với reloadOnChange có hiệu lực ở lần chuyển đổi kế tiếp, không cần khởi động lại.

Background service và kiểm thử

  • Một BackgroundService có thể nhận các service này thẳng trong constructor, vì chúng là singleton không giữ trạng thái.
  • Bọc chúng trong một scope chỉ gợi ra một vấn đề vòng đời không hề có.
  • Trong kiểm thử, hãy thay interface, ví dụ IHtmlToPdfConverter, để bài kiểm thử không mất thời gian tạo một PDF thật.
  • Bài kiểm thử về chính việc chuyển đổi nên gọi bản thật. Nó không cần dữ liệu mẫu và không cần mạng.

Những điều nó không làm

  • Gói extensions không thêm khả năng nào. Mọi thứ nó cung cấp đều dùng được qua lớp static; nó có để thay thế được và để cấu hình.
  • Với ứng dụng console, script hoặc thư viện, hãy dùng Ank.DocToolkit và gọi các lớp static.