2010-12-01 5 views
1

다음 코드를 F #으로 가져옵니다.Silverlight 4 및 XAML에서 제네릭과 함께 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

F #에 대해서는 아무것도 모르지만 현재 XAML 사양 (XAML 2006)은 제네릭을 전혀 지원하지 않습니다. XAML 2009는 그렇지만 일반적으로 사용되지는 않습니다. –

답변

4

StuffBlah 버전이 작동하지 않는 이유는 F # 구문의 특정 부분이 F # 프로젝트에 대해서만 형식 별칭을 생성하고 실제 형식을 만드는 것입니다. 이름이 IL 수준에서 실제 유형으로 표시되지 않기 때문에 일반적으로 Silverlight 또는 XAML에 액세스 할 수 없습니다.

이 문제를 해결하는 한 가지 방법은 Stuff<'T>에서 파생 된 첫 번째 클래스 유형으로 StuffBlah을 만드는 것입니다. 이상적이지는 않지만 작동 할 것입니다.

+0

좋은 소리입니다. 고마워요. –

관련 문제