Сбой ответа WCF AJAX при использовании System.Array в качестве DataMember
Когда я пытаюсь получить Sytem.Array
Как элемент данных в объекте класса Json, он дает ответ об ошибке.
Мой веб-сервис WCf я использую следующим методом userActivities
который возвращает класс Activity
Я установил параметр в классе Activity
из Аякса.
[ServiceContract]
public interface IMyService
{
[OperationContract]
[WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json)]
Activity userActivities(Activity activity, string action);
}
[DataContract]
partial class Activity
{
}
А в классе обслуживания MyService.cs есть
public Activity userActivities(Activity activity, string action)
{
if (action.ToLower() == "myactivities")
{
activity.get_MyActivities();
}
return activity;
}
И класс деятельности это:
[DataMember]
public int userID;
[DataMember]
public Array _getList_MyActivities;
public void get_MyActivities()
{
_DL_Activity = new DL_Activity();
if (this.userID > 0)
this._getList_MyActivities = _DL_Activity.get_MyActivity(this.userID);
}
1 ответ
Получил этот пост. В соответствии с этим попробуйте украсить свой сервис ServiceKnownType
,
Что-то вроде этого
[ServiceContract]
[ServiceKnownType(typeof(string))]
[ServiceKnownType(typeof(string[]))]
public interface IMyService
Согласно вашему комментарию вы храните разные типы данных в массиве, я думаю, вам нужно будет поставить typeof
для всех элементов в массиве как ServiceKnownType
,
Надеюсь, что это работает для вас.