2011-02-28 4 views
2

C'est mon scénario:WCF 4.0, client .NET 2.0 et .NET types

  • WCF 4.0 Service
  • .NET 2.0 client (qui utilise le service ci-dessus)

J'ai besoin , disons, pour passer un tableau de NetworkInterfaces (System.Net.NetworkInformation.NetworkInterfaces) du client au service. Une référence Web wcfReference au service WCF a été ajoutée au client.

Code de service:

public void StoreNetworkInterfaces(System.Net.NetworkInterfaces[] nwInterfaces) 
{ 
... 
} 

Code client:

wcfService.StoreNetworkInterfaces(System.Net.NetworkInformation.NetworkInterfaces.GetAllNetworkInterfaces()); 

Je reçois:

Argument 1: cannot convert from 'System.Net.NetworkInformation.NetworkInterface[]' to 'WindowsFormsApplication1.wcfReference.NetworkInterface[]'

même chose se produit pour tout autre type (.NET et non. Types NET). Je sais que c'est le comportement souhaité pour un service Web (interop) mais la portée de mon WCF sert simplement à un installateur client.

Modifier manuellement le code du proxy après chaque mise à jour de référence Web n'est définitivement pas un bon choix pour ce projet.

Toute suggestion d'aide ou d'approche serait très appréciée.

Salue

Répondre

2

une référence Web (2.0 style) ne dispose pas de la « réutilisation types » option qui complète un WCF (3.0+) supporte le service de références, de sorte si vous utilisez l'outillage vous devrez accepter les types de proxy sur le fil, puis les transformer (peut-être AutoMapper) vers/à partir des types de domaine.

Ne modifiez pas le fichier de référence; qui peut être régénéré au hasard.

+0

Merci Mark. Jamais entendu parler d'AutoMapper. Je regarderai. Quoi qu'il en soit ... la sérialisation xml serait-elle adaptée à ce scénario? Merci encore. – HiseaSaw

+0

@HiseaSaw aussi approprié que tout autre ... surtout en parlant de 2.0. –

Questions connexes