J'active actuellement les appels JSON à mes services Web à l'aide de l'attribut ScriptService. Le problème est que l'une de mes classes fait référence à une seconde classe et que .Net ne récupère pas et n'écrit pas le JavaScript pour la deuxième classe. En guise de solution de contournement, je peux écrire une méthode factice qui retourne juste la deuxième classe. Ensuite, .Net écrit le JSON pour lui permettre d'être sérialisé. Ainsi, dans l'exemple suivant:Expose un objet .net spécifique en tant que JSON
[ScriptService]
public class MyService : WebService {
[WebMethod]
public void SaveClass1(Class1 class1) {
...
}
}
[Serializable]
public class Class1 {
public Class2 class2 { get; set; }
}
[Serializable]
public class Class2 {
}
MyService.asmx/js n'écrire du code pour me permettre de instancier Classe2 afin de me remplir Class1. Mais je peux le faire fonctionner si j'ajoute:
[WebMethod]
public Class2 Dummy() {
return new Class2();
}
à MyService. Toute alternative à ma vilaine solution de contournement serait grandement appréciée.
XmlInclude est utilisé pour inclure des types dérivés dans les descriptions de services WSDL. Dans cette question, Class2 n'est pas dérivé de Class1 et le serveur génère du code JavaScript pas une description de service WSDL. Utilisez plutôt GenerateScriptTypeAttribute. –