У меня есть метод действия, который требует пользовательский заголовок.Я нашел этот код для добавления пользовательского заголовка в пользовательский интерфейс.
public class AddRequiredHeaderParameter : IOperationFilter
{
public void Apply(Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription)
{
if (operation.parameters == null)
operation.parameters = new List<Parameter>();
operation.parameters.Add(new Parameter
{
name = "Foo-Header",
@in = "header",
type = "string",
required = true
});
}
}
Но я хочу использовать его в других методах, которые могут требовать другого имени пользовательского заголовка.Примерно так, где я могу передать имя настраиваемого заголовка конструктору.
public class CustomHeaderOperationFilter : IOperationFilter
{
private string _headerName;
public CustomHeaderOperationFilter(string headerName)
{
_headerName = headerName;
}
public void Apply(Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription)
{
if (operation.parameters == null)
operation.parameters = new List<Parameter>();
operation.parameters.Add(new Parameter
{
name = _headerName,
type = "string",
@in = "header",
required = true,
});
}
}
И я хочу назначить его только определенному методу Action, поэтому я надеялся, что смогу украсить метод action с помощьюатрибут вроде этого:
[SwaggerOperationFilter<CustomHeaderOperationFilter>("custom-header-name")]
Но, к сожалению, я могу только передать тип фильтра в атрибут.Есть ли способ добиться этого?