Dobrý den,
při psaní swagger endpointu (generování dokumentace) jsme narazili na problém při přechodu z NET Framework na Net Core 3.x.
Úkolem je přidání custom atributu do swagger info sekce obsahující verzi - nechceme to dávat do info.version.
DokumentFilter, který se o vyčtení a přidání verze staral vypadal následovně.
public class VersionInfoDocumentFilter : IDocumentFilter
{
private readonly Version _version =
HttpContext.Current?.ApplicationInstance?.GetType().BaseType?.Assembly.GetName().Version;
private const string PropertyName = "x-myCustomVersionAttribute";
public void Apply(SwaggerDocument swaggerDoc, SchemaRegistry schemaRegistry, IApiExplorer apiExplorer)
{
if (swaggerDoc?.info?.vendorExtensions != null && _version != null)
{
swaggerDoc.info.vendorExtensions.Add(PropertyName,
$"{_version.Major}.{_version.Minor}.{_version.Build}");
}
}
}
V Net Core již HttpContext.Current neexistuje.
Zjistil jsem, že místo toho zavedli HttpContextAccessor : IHttpContextAccessor, který má property HttpContext, není to statika.
Uvedený kód byl v modulu základním, který přepoužívaly ostatní mikroservisy.
Ale Version tam ani tak nevidím.
Máte někdo pls tucha?
Případně díky.