Beispiel #1
0
    private static bool TryGetBuilderName(XmlObject xml, [MaybeNullWhen(false)] out TypeFullName builderName, out Diagnostic?diagnostic)
    {
        // x-Builder="Namespace.Name"
        if (xml.Root.TryFindAttribute("x-Builder", out var attr) == false)
        {
            builderName = TypeFullName.Empty;
            diagnostic  = DiagnosticHelper.BuilderNotSpecified();
            return(false);
        }
        var value = attr.Value;
        var index = value.LastIndexOf((byte)'.');

        if (index < 0)
        {
            builderName = TypeFullName.Empty;
            diagnostic  = DiagnosticHelper.InvalidBuilderName(value.ToString());
            return(false);
        }
        builderName = new TypeFullName(value.Slice(0, index), value.Slice(index + 1));
        diagnostic  = null;
        return(true);
    }