Можно ли передать функцию F # посредством Reflection?Можно ли передать функцию F # посредством Reflection?
(*in module A*)
type Foo() =
static member bar n = {1..n}
let functionUsingFoobar (x:(int -> #('a seq)) n =
let z = BarFoo.ofSeq (x n)
z.count
(* in module B
here is where I want to pass Foo.bar by reflection*)
let y = functionUsingFoobar Foo.bar 1000
Я не могу вызывать элемент без параметра args, поэтому приложение частичной функции через InvokeMember не может работать.
let foo = new Foo()
let z = foo.GetType().InvokeMember("bar", System.Reflection.BindingFlags.InvokeMethod, null, foo, [|1000|])
(*tried null, [||], [|null|] for args parameter*)
Я из идей, как передать функцию отражения
Я не понимаю, как ваш второй пример кода соединяется с первым - что такое seqIntAsc? – kvb
К сожалению, спасибо, что указали это. Исправлено в «bar». Второй пример кода вызывает элемент «bar» типа Foo, который я не хочу делать. Я подозреваю, что передача функции, как частичная функция, невозможна с отражением. –
Что такое _problem_? Вы получаете ошибку компилятора или ошибку времени выполнения? – ildjarn