in src/Core/Compiling/Policy/ValidateHeadersCompiler.cs [61:101]
private static void HandleHeaders(ICompilationContext context, InitializerValue headerValues, XElement element)
{
foreach (var headerValue in headerValues.UnnamedValues ?? [])
{
if (!headerValue.TryGetValues<ValidateHeader>(out var validateHeaderValues))
{
context.Report(Diagnostic.Create(
CompilationErrors.PolicyArgumentIsNotOfRequiredType,
headerValue.Node.GetLocation(),
"validate-headers.header",
nameof(ValidateHeader)
));
continue;
}
XElement header = new("header");
if (!header.AddAttribute(validateHeaderValues, nameof(ValidateHeader.Name), "name"))
{
context.Report(Diagnostic.Create(
CompilationErrors.RequiredParameterNotDefined,
headerValue.Node.GetLocation(),
"validate-headers.header",
nameof(ValidateHeader.Name)
));
continue;
}
if (!header.AddAttribute(validateHeaderValues, nameof(ValidateHeader.Action), "action"))
{
context.Report(Diagnostic.Create(
CompilationErrors.RequiredParameterNotDefined,
headerValue.Node.GetLocation(),
"validate-headers.header",
nameof(ValidateHeader.Action)
));
continue;
}
element.Add(header);
}
}