Я пытаюсь игнорировать свойство в пользовательском интерфейсе чванства. на основе этой статьи я реализовал фильтр и попробовал
[AttributeUsage(AttributeTargets.Property, AllowMultiple = true)]
public class SwaggerExcludeAttribute : Attribute
{
}
public class SwaggerExcludeFilter : ISchemaFilter
{
public void Apply(OpenApiSchema schema, SchemaFilterContext context)
{
if (schema?.Properties == null || context == null) return;
var excludedProperties = context.Type.GetProperties()
.Where(t => t.GetCustomAttribute(typeof(SwaggerExcludeAttribute), true) != null);
foreach (var excludedProperty in excludedProperties)
{
if (schema.Properties.ContainsKey(excludedProperty.Name))
schema.Properties.Remove(excludedProperty.Name);
}
}
}
- пользовательский атрибут, кажется, неправильно получает отражение
excludedProperties
всегда пустым. context.MemberInfo
читает свойство, но не может удалить его из schema.Properties
, потому что там нет свойств
моя модель образца похожа на
public class SequenceSetupListModel
{
public int Id { get; set; }
public int Sequence { get; set; }
public string Role { get; set; }
public string User { get; set; }
[SwaggerExclude]
public IList<Sequence> SequenceLists { get; set; }
}
Чего мне здесь не хватает
Привет