Wie man den Code repariert? Ist der Inline/Statisch aufgelöste Typ derselbe wie der Strukturtyp?Der Typ 'XmlProvider <...> .Parameter' unterstützt den Operator 'get_Value' nicht?
Der Typ 'XmlProvider < ...>. Parameter' unterstützt den Operator 'get_Value' nicht?
let input1 = """<r1><parameters><parameter name="token">1</parameter><parameter name="other">xxx</parameter></parameters><othersOf1>..sample....</othersOf1></r1>"""
let xml1 = XmlProvider<"""<r1><parameters><parameter name="token">1</parameter><parameter name="other">xxx</parameter></parameters><othersOf1>...</othersOf1></r1>""">.Parse(input1)
let inline get name parameters =
parameters |> Seq.tryFind (fun x -> (^P : (member Name : 'a) x) = name)
|> Option.map (fun v -> (^P : (member Value : 'b) v))
get "token" xml1.Parameters
Danke, das funktioniert, wenn der Token '1' ist. Es schlägt jedoch fehl, wenn ich es nach Änderung von "1" auf "a1" teste. Die reale Eingabe kann ein Text sein, der nicht in eine Zahl umgewandelt werden kann. – ca9163d9
Ja, dann hast du wieder 'Value', weil alle Werte nur' string's sind. Sie benötigen ein * repräsentatives * Beispiel Ihrer Eingabe, um einen geeigneten Typ generieren zu lassen. – CaringDev
@ dc7a9163d9 siehe zuletzt hinzugefügte Option – CaringDev