in src/Core/Compiling/Policy/ValidateParametersCompiler.cs [72:118]
private static void AddHeadersElement(ICompilationContext context, InitializerValue headersValue,
XElement parentElement)
{
if (!headersValue.TryGetValues<ValidateHeaderParameters>(out var headerParams))
{
context.Report(Diagnostic.Create(
CompilationErrors.PolicyArgumentIsNotOfRequiredType,
headersValue.Node.GetLocation(),
"validate-parameters.headers",
nameof(ValidateHeaderParameters)
));
return;
}
XElement headersElement = new("headers");
if (!headersElement.AddAttribute(headerParams, nameof(ValidateHeaderParameters.SpecifiedParameterAction),
"specified-parameter-action"))
{
context.Report(Diagnostic.Create(
CompilationErrors.RequiredParameterNotDefined,
headersValue.Node.GetLocation(),
"validate-parameters.headers",
nameof(ValidateHeaderParameters.SpecifiedParameterAction)
));
return;
}
if (!headersElement.AddAttribute(headerParams, nameof(ValidateHeaderParameters.UnspecifiedParameterAction),
"unspecified-parameter-action"))
{
context.Report(Diagnostic.Create(
CompilationErrors.RequiredParameterNotDefined,
headersValue.Node.GetLocation(),
"validate-parameters.headers",
nameof(ValidateHeaderParameters.UnspecifiedParameterAction)
));
return;
}
if (headerParams.TryGetValue(nameof(ValidateHeaderParameters.Parameters), out var parametersValue))
{
AddParameters(context, parametersValue, headersElement, "validate-parameters.headers");
}
parentElement.Add(headersElement);
}