je besoin d'un avis sur la rédaction d'un wrapper managé (C#) pour un environnement non géré C++ DLL.conception wrapper pour DLL avec P/Invoke
Disons que j'ai un objet comme celui-ci:
public class ManagedObject
{
public void DoSomethingWithTheObject()
{
}
}
et supposons que la méthode DoSomethingWithTheObject() doit faire un appel à la méthode de DLL non géré.
Maintenant il y a deux possibilités acceptables qui me viennent à l'esprit:
public void DoSomethingWithTheObject()
{
DllWrapperClass.DirectCallToUnmanagedMethod(some_value_type);
}
et
public void DoSomethingWithTheObject()
{
DllWrapperClass.MethodName(this);
}
Ce que je demande au fond est si
la classe wrapper devrait simplement être un wrapper aux méthodes non managées et tous les objets appellent ces méthodes directement
la classe d'emballage doit être bien intégré avec les objets et se cachent autant de « façon non géré » de travailler comme possbile
Je penche vers la deuxième option, mais je voudrais d'entendre d'autres opinions que les deux moyens ont leurs propres avantages et inconvénients.
Merci. J'avais exactement les mêmes pensées. –
1+. Pour votre meilleure réponse. – Aliostad