2010-12-02 12 views
5

Je suis en train de registre avec les présentateurs de Windsor en utilisant la méthode basée sur la convention mais en essayant de le faire en VB.NET, mais le problème est qu'il ne veut pas compiler cette déclaration:GetType sur les types génériques

Dim type = GetType(AbstractPresenter(Of)) 

Je reçois: Trop peu d'arguments de type à AbstractPresenter (Of TView, TPresenter)

Ce que je ne comprends pas parce que c'est une déclaration valide selon question. Affichage également valide dans d'autres convertisseurs C# à VB.NET lors de la conversion de typeof (AbstractPresenter <>).

Des idées?

Répondre

6

Il y a deux arguments de type, et vous devez le préciser, comme vous le feriez pour les tableaux multidimensionnels:

Dim type = GetType(AbstractPresenter(Of ,)) 

fait un peu bizarre, mais maintenant le compilateur sait que AbstractPresenter attend deux arguments de type. Par ailleurs, C# a la même exigence. Donc ce qui précède serait écrit comme:

var type = typeof(AbstractPresenter<,>); 
+0

excellent, merci pour le conseil sur C# aussi – adriaanp