MSDN имеет ответ: Выбор Между Классами и Структурами .
В основном, та страница дает Вам контрольный список с 4 объектами и говорит для использования класса, если тип не соответствует всем критериям.
не определяют структуру, если тип не имеет все следующие характеристики:
- Это логически представляет единственное значение, подобное типам примитивов (целое число, дважды, и так далее).
- Это имеет размер экземпляра, меньший, чем 16 байтов.
- Это неизменно.
- Это не должно будет часто упаковываться.
Вы пробовали:
[WebGet(ResponseFormat= WebMessageFormat.Json)]
Если вы хотите использовать команду POST, как в $. Ajax ({type: "POST", ...)
, вам нужно будет разметить свой метод с помощью [WebInvoke (Method = "POST"]
.
Поскольку вы отметили его с помощью [WebGet]
(что эквивалентно [WebInvoke (Method = "GET")]
), вам следует вызовите службу с помощью команды GET, например:
$. ajax ({type: "GET", ...)
или используйте $. get (url, data, ...)
(см. jQuery.get для получения дополнительной информации.)
И вам нужно установить ResponseFormat на Json, как уже указывал tomasr
.