in src/Core/Compiling/Policy/SendOneWayRequestCompiler.cs [18:62]
public void Handle(ICompilationContext context, InvocationExpressionSyntax node)
{
if (!node.TryExtractingConfigParameter<SendOneWayRequestConfig>(context, "send-one-way-request",
out IReadOnlyDictionary<string, InitializerValue>? values))
{
return;
}
XElement element = new("send-one-way-request");
element.AddAttribute(values, nameof(SendOneWayRequestConfig.Mode), "mode");
element.AddAttribute(values, nameof(SendOneWayRequestConfig.Timeout), "timeout");
if (values.TryGetValue(nameof(SendOneWayRequestConfig.Url), out InitializerValue? url))
{
element.Add(new XElement("set-url", url.Value!));
}
if (values.TryGetValue(nameof(SendOneWayRequestConfig.Method), out InitializerValue? method))
{
element.Add(new XElement("set-method", method.Value!));
}
if (values.TryGetValue(nameof(SendOneWayRequestConfig.Headers), out InitializerValue? headers))
{
BaseSetHeaderCompiler.HandleHeaders(context, element, headers);
}
if (values.TryGetValue(nameof(SendOneWayRequestConfig.Body), out InitializerValue? body))
{
SetBodyCompiler.HandleBody(context, element, body);
}
if (values.TryGetValue(nameof(SendOneWayRequestConfig.Authentication), out InitializerValue? authentication))
{
HandleAuthentication(context, element, authentication);
}
if (values.TryGetValue(nameof(SendOneWayRequestConfig.Proxy), out InitializerValue? proxy))
{
ProxyCompiler.HandleProxy(context, element, proxy);
}
context.AddPolicy(element);
}