#.net #pdf #.net-core
#.net #PDF #.net-core
Вопрос:
У нас есть ряд ASP.NET Рамочные приложения, использующие компоненты TALL (TallPDF и PDFKit). Теперь мы переносим часть этой логики в .NET Core.
Все примеры, которые я видел, показывают только, как использовать web.config
, но, учитывая, что это в основном было заменено совершенно новым механизмом настройки в .NET Core (обычно в файле appsettings.json
), не совсем ясно, что нужно будет сделать, чтобы реализовать это в .NET Core.
У кого-нибудь есть пример использования лицензий tall Components в ASP.NET Ядро?
Ответ №1:
Поскольку я не смог найти этот ответ где-либо еще в Интернете, я задокументирую его здесь.
Начните с добавления нового раздела в appsettings.json
файл:
{
"TallComponentsLicenses": [
{
"key": "TallPDF.NET 5.0 Web Application Key",
"value": "<YOUR LICENSE>"
}
]
}
Создайте простую модель для описания этой структуры:
public class TallComponentsLicense
{
public string Key { get; set; }
public string Value { get; set; }
}
В Startup.cs
, зарегистрируйте каждую из лицензий в глобальном TallComponents.Licensing.LicenseCollection
:
using TallComponents.Licensing;
...
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
...
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
...
var tallComponentsLicenses = Configuration.GetSection("TallComponentsLicenses");
if (tallComponentsLicenses != null)
{
var licenses = tallComponentsLicenses.Get<TallComponentsLicense[]>();
foreach (var license in licenses)
{
LicenseCollection.Add(license.Key, license.Value);
}
}
...
}
}
Кроме того, при использовании ключа веб-приложения это зависит от наличия определенных атрибутов уровня сборки. Вы можете предоставить их вручную (например, в AssemblyInfo.cs
файле) или указав их в csproj
файле, что я предпочитаю:
<PropertyGroup>
<Company>YOUR COMPANY NAME</Company>
<Product>YOUR PRODUCT NAME</Product>
<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
</PropertyGroup>