Как я могу использовать тип F # с обобщениями в Silverlight 4 и XAML? - PullRequest
1 голос
/ 01 декабря 2010

Возьмите следующий код F #:

type Blah<'T>(objects : 'T array) as this = // whatever

Когда я пытаюсь использовать этот тип в документе XAML, тип, связанный с универсальным параметром, не существует, и это уродливо.Я думаю, что компилятор тоже жалуется:

<ns:Blah foo="bar"/>

Итак, я пытаюсь присвоить псевдониму тип (внизу моего файла Blah.fs):

type StuffBlah = Blah<Stuff>

ЗатемЯ использую его таким же образом в своем документе XAML, тип не найден:

<ns:StuffBlah foo="bar"/>

Почему это так?Есть ли более чистый и элегантный способ сделать это?Я до сих пор знакомлюсь с Silverlight, XAML и F #, поэтому любые советы будут с благодарностью.Спасибо.

1 Ответ

4 голосов
/ 01 декабря 2010

Причина, по которой версия StuffBlah не работает, заключается в том, что определенный фрагмент синтаксиса F # создает псевдоним типа только для проекта F # вместо создания фактического типа.Поскольку имя не отображается на уровне IL как фактический тип, оно не доступно для Silverlight или XAML в целом.

Один из способов обойти это - создать StuffBlah как тип первого класса, производный от Stuff<'T>.Совсем не идеально, но это сработает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...