以下是需要从 SwaggerResponseModel 中排除 VersionRange 属性的类:
public class Dependency
{
public string Name { get; set; }
[JsonConverter(typeof(VersionRangeConverter))]
[SwaggerExclude]
public VersionRange VersionRange { get; set; }
}
我尝试使用 Attribute 和 ISchemaFilter 从 SwaggerResponse 模型中排除属性,但没有成功。
public class SwaggerExcludeFilter : ISchemaFilter
{
public void Apply(OpenApiSchema schema, SchemaFilterContext context)
{
if (schema?.Properties == null)
{
return;
}
var properties = context?.Type?.GetProperties().Where(x => x.GetCustomAttribute<SwaggerExcludeAttribute>() != null);
foreach (PropertyInfo prop in properties ?? Enumerable.Empty<PropertyInfo>())
{
if (schema.Properties.ContainsKey(prop.Name))
{
schema.Properties.Remove(prop.Name);
}
}
}
}
我不想按照我的意愿使用受保护的内部访问说明符 序列化和反序列化期间要考虑的属性。
[System.Text.Json.Serialization.JsonIgnore] 属性没有 也有效果。
您尝试过
[OpenApiIgnore]
属性吗?
using NSwag.Annotations;
public class SomeViewModel
{
[OpenApiIgnore]
public string? PropertyToExclude { get; set; }
}