Je suis encore nouveau dans le monde ASP.NET, donc je pourrais être loin de la base ici, mais jusqu'à présent, c'est le meilleur de mes connaissances (limitées) ! Disons que j'ai un objet métier standard "Contact" dans l'espace de noms Business. J'écris un service Web pour récupérer les informations d'un contact à partir d'une base de données et le renvoyer. J'écris ensuite une application client pour demander les détails.Résultats du service Web ASP.NET, classes de proxy et conversion de type
Maintenant, je crée aussi une méthode utilitaire qui prend un "Contact" et fait de la magie avec, comme Utils.BuyContactNewHat()
dire. Qui prend bien sûr le contact de type Business.Contact
.
Je reviens ensuite à mon application client et je veux utiliser la méthode BuyContactNewHat
, donc j'ajoute une référence à mon espace de noms Utils et voilà. Cependant, un problème se pose avec:
Contact c = MyWebService.GetContact("Rob);
Utils.BuyContactNewHat(c); // << Error Here
Depuis le type de retour de GetContact
est de MyWebService.Contact
et non Business.Contact
comme prévu. Je comprends pourquoi, car lors de l'accès à un service Web, vous êtes en train de programmer sur la classe proxy générée par le WSDL.
Alors, y a-t-il une façon "plus facile" de gérer ce type de discordance? Je pensais peut-être à essayer de créer une classe générique de convertisseurs qui utilise la réflexion pour s'assurer que deux objets ont la même structure, que de simplement transférer les valeurs de l'un à l'autre.