public void Handle()

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);
    }