Я хотел бы получить типизированное значение для поля из записи в Quotation
. Похоже, это должно быть прямо, но я немного потерян.Получите значение поля из цитаты и введите его тип
Е.Г.,
type FullName = { First : string; Last : string }
type Name = { Name : FullName }
let t = { Name = { First = "Jon"; Last = "N" } }
let name = <@ t.Name.First @>
Тогда я хотел бы взять значение name
и получить Jon
как string
(не obj
). Как мне это сделать? Иногда возвращаемое значение может быть Array
или другое Record
.
Заранее благодарен!
Update:
Я буду использовать эту функцию по краям F # поэтому необходимо проверить null
:
let getValue (expr: Quotations.Expr<'t>) =
match eval expr with
| null -> None
| x -> Some ((eval expr) :?> 't)
Похоже, вам нужно скомпилировать и выполнить цитату. Или я чего-то не хватает? – Gustavo
Как извлечь фактическое значение из предложения с его типом? Извините, я не уверен, как сделать это более понятным. – Jon49
Сейчас я просто играю с ним в сценариях. Я нашел этот фрагмент, который доставит меня на полпути, но он возвращает его на 'obj' http://www.fssnip.net/h1 – Jon49