将System.Array用作DataMember时,WCF AJAX响应失败

时间:2012-01-19 06:57:23

标签: ajax wcf json datamember system.array

当我试图获取Sytem.Array作为Json Class对象中的数据成员时,它会给出失败响应。

我的WCf网络服务我正在使用以下方法userActivities返回类Activity。我在Ajax中设置了类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 个答案:

答案 0 :(得分:0)

得到this张贴。根据此尝试使用ServiceKnownType装饰您的服务。

像这样的东西

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

根据您的评论,您在数组中存储了不同的数据类型,我猜您需要将typeof放在数组中的所有项目ServiceKnownType

希望这适合你。