Conversion C# vers VB.NET

Netlink Messages postés 139 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 12 juillet 2011 - 24 févr. 2010 à 16:03
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Modérateur Dernière intervention 15 juillet 2011 - 25 févr. 2010 à 19:06
Salut à tous,

J'ai récupéré un bout de code sur le net que j'aimerai intégrer à une de mes applications. Le seul problème c'est que ce code est en C#, et que je développe mon application en VB.NET...

Je ne vois vraiment pas comment transcrire le code "where TTo : TFrom" qui suit la déclaration de la méthode. J'ai tenté de compiler, puis d'utiliser .NET Reflector et d'afficher le code en VB.NET mais il fait disparaître cette mention "where TTo : TFrom", ce qui génère une erreur lors de la compilation.

Voici le bout de code en question :

public static void RegisterTypePerThread<TFrom, TTo>(string name, params InjectionMember[] injectionMembers)
            where TTo : TFrom
        {
            _container.RegisterType<TFrom, TTo>(name, new PerThreadLifetimeManager(), injectionMembers);
        } 


Sachant que InjectionMember est membre de Microsoft.Practices.Unity

Avez-vous une idée ou des pistes à explorer ?

En vous remerciant par avance,

@ bientôt, Matt

3 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Modérateur Dernière intervention 15 juillet 2011 37
24 févr. 2010 à 22:17
Salut,

Voici un code pour t'aider

Public Class thisClass(Of t As {IComparable, IDisposable, Class, New})
    ' Insert code that defines class members.
End Class



et avec l'outil http://tools.codes-sources.com/DotNetCodeConverter.aspx
tu as.


Public Shared Sub RegisterTypePerThread(Of TFrom, TTo As TFrom)(ByVal name As String, ParamArray injectionMembers As InjectionMember())

  _container.RegisterType(Of TFrom, TTo)(name, New PerThreadLifetimeManager(), injectionMembers)

End Sub

0
Netlink Messages postés 139 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 12 juillet 2011
25 févr. 2010 à 10:55
Salut,

Merci pour ta réponse !

Comme je l'ai mentionné dans mon premier message, j'ai déjà essayé de convertir le code via différents outils (dont .NET Reflector), et le résultat est bien celui que tu mentionnes.

Cependant, comme le code converti ne reprend pas la mention "where TTo : TFrom" du code en C#, cette méthode n'est pas valide et le compilateur refuse de compiler...

Le problème est donc quel est l'équivalent de "where TTo : TFrom" en VB.NET, s'il existe ?


@ bientôt, Matt
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Modérateur Dernière intervention 15 juillet 2011 37
25 févr. 2010 à 19:06
Le where ce transforme en

TTo As TFrom


Comme indiqué dans la premiere partie.
Le but est d'indiquer que TTo est de type TFrom ou dérivé

Bon dev
0