J'ai un projet Web asp.net qui fait référence à un projet de domaine. Dans le projet Web, je souhaite créer une instance d'une classe à partir du projet de domaine en utilisant la réflexion, mais j'ai toujours la valeur null (Nothing, in VB).Échec de GetType sur une classe dans un assembly référencé
NOTE: J'utilise le nom de classe non qualifié, et espérais que la recherche serait effectuée comme MSDN semble indiquer (au niveau de l'Assemblée)
Dim myType comme type = Type.GetType ("MetricEntity") « // Rien rendement (nul)
'// lets try this
Dim WasFound As Boolean = False
For Each ObjectType In Me.GetType.Assembly.GetExportedTypes
If ObjectType.Name = theClassName Then
WasFound = True
Exit For
End If
Next
La réponse à cette question semble être généralement:
Dim myType as Type = Type.GetType("System.Linq.Enumerable, System.Core, "
+ "Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"));
Mais je ne vois pas t La logique d'avoir à coder en dur le numéro de version (ou avoir à placer dans un fichier de configuration) .... alors que se passe-t-il si la version change et j'oublie de la mettre à jour dans le code de réflexion ..... est-il possible de faire un GetType, en ignorant Version, Culture et PublicKeyToken?
Merci. Note à d'autres .... la deuxième syntaxe est nécessaire pour une classe qui réside dans un assembly externe, à savoir: si vous faites le Type.GetType de votre projet web sur une classe de votre projet de domaine, vous DEVEZ spécifier l'assembly. – tbone