В настоящее время я включаю вызовы JSON для своих веб-служб с помощью атрибута ScriptService. Проблема в том, что один из моих классов ссылается на второй класс, а .Net не берет и не выписывает JavaScript для второго класса.
В качестве обходного пути я могу написать фиктивный метод, который просто возвращает второй класс. Затем .Net пишет 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 не будет писать код, который позволил бы мне создать экземпляр Class2, чтобы я мог заполнить Class1. Но я могу заставить его работать, если добавлю:
[WebMethod]
public Class2 Dummy() {
return new Class2();
}
на MyService. Будем весьма благодарны за любые альтернативы моему отвратительному обходному пути.