Bonjour à tous.
J'aurais besoin d'envoyer un objet n'étant pas un type de base à un WCF. Il s'agit d'un ZipFile (de la librairie Ionic.Zip).
J'ai donc fait le service suivant :
et, n'ayant pas accès à la classe ZipFile de la librairie, j'ai fait une customZipFile
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 // NOTE: If you change the interface name "IInstallService" here, you must also update the reference to "IInstallService" in Web.config. [ServiceContract(Namespace = "http://test.ServiceModel.Zip")] public interface IInstallService { [OperationContract] bool InstallModule(customZipFile zipFile); }
seulement lorsque j'essaie d'accéder à mon WCF j'obtient le message suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 using ... using Ionic.Zip; [DataContract(Namespace = "http://test.ServiceModel.Zip")] [KnownType(typeof(ZipFile))] public class customZipFile:ZipFile { }
J'ai suivi plusieurs tutoriaux sur l'envoi de type personnalisés via des webservices, et j'avoue que je bloque sérieusement là dessus en ce moment. J'ai surement du manquer une étape ou bien un détail conceptuel sur l'intégration de types types personnalisés dans les interfaces de web-services.Sérialisation du type 'Ionic.Zip.ZipFile' impossible. Envisagez de le marquer avec l’attribut DataContractAttribute et de marquer tous ses membres devant être sérialisés avec l’attribut DataMemberAttribute. Consultez la documentation Microsoft .NET Framework pour connaître les autres types pris en charge.
Je vous ai mis là toutes les manips que j'ai faites, à savoir ajouter un "WCF Service" dans mon projet, ajouter une référence vers la librairie Ionic, créer une classe perso.
Il va sans dire que mes autres services du même projet fonctionnent normalement sur mon serveur IIS, le problème viens vraiment de la sérialisation.
Merci d'avance![]()
Partager