Сбой ответа WCF AJAX при использовании System.Array в качестве DataMember - PullRequest
0 голосов
/ 19 января 2012

Когда я пытаюсь получить Sytem.Array Как элемент данных в объекте класса Json, он дает ответ об ошибке.

Мой веб-сервис WCf. Я использую следующий метод userActivities, который возвращает класс Activity. Я установил параметр в классе Activity из Ajax.

[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 Ответ

0 голосов
/ 19 января 2012

Получил этот пост.В соответствии с этим попробуйте украсить свой сервис с помощью ServiceKnownType.

Примерно так:

[ServiceContract]
[ServiceKnownType(typeof(string))]
[ServiceKnownType(typeof(string[]))]
public interface IMyService

Согласно вашему комментарию, вы храните разные типы данных в массиве.положите typeof для всех элементов в массиве как ServiceKnownType.

Надеюсь, это работает для вас.

...