Как передать тип в качестве параметра атрибута, используя синтаксис F#?

FsCheck позволяет настраивать Arbitrary в его интеграции NUnit:

[<Property(Verbose = true, Arbitrary= [typeof<Test.Arithmetic.MyArb>])>]
static member  MultiplyIdentity (x: int64) = x * 1 = x

Этот синтаксис не работает. Я чувствую себя немного смущенным, чтобы спросить, но, по-видимому, я никогда не нуждался в этом раньше: как вы определяете тип в F# в качестве параметра атрибута? Microsoft ничего не говорит об этом, как и проект Wikibooks, и у меня есть некоторые проблемы с поиском в Google (тип слова вездесущ).

Примечание 1: Arbitrary параметр имеет тип Type [],

1 ответ

Решение

Я думаю, что вы близко, но [1;2;3] создает list<int>, вы хотите массив, используя [| 1;2;3 |]:

[<Property(Verbose = true, Arbitrary= [| typeof<Test.Arithmetic.MyArb> |])>]
static member  MultiplyIdentity (x: int64) = x * 1 = x
Другие вопросы по тегам