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

将System.Array用作DataMember时,WCF AJAX响应失败,ajax,wcf,json,datamember,system.array,Ajax,Wcf,Json,Datamember,System.array,当我试图将Sytem.Array作为Json类对象中的数据成员时,它会给出失败响应 我的WCf web服务我正在使用下面的方法userActivities,它返回classActivity。我已经从Ajax中设置了classActivity中的参数 [ServiceContract] public interface IMyService { [OperationContract] [WebInvoke(Method = "POST", BodyStyle = WebMessag

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

我的WCf web服务我正在使用下面的方法
userActivities
,它返回class
Activity
。我已经从Ajax中设置了class
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);

}
我收到邮件了。根据这一点,尝试使用
ServiceKnownType
装饰您的服务

像这样的

[ServiceContract]
[ServiceKnownType(typeof(string))]
[ServiceKnownType(typeof(string[]))]
public interface IMyService
根据您的评论,您正在数组中存储不同的数据类型,我猜您需要将数组中所有项目的
typeof
设置为
ServiceKnownType


希望这对您有用。

请将整个
活动
类放在一个代码块中,很难理解您的代码,以及为什么要使用
部分
?部分,因为我们希望将代码与界面分开
\u getList\u MyActivities
中存储了什么<代码>活动
?我的活动的行,如Ondate、活动类型、to_UserID、from_UserID这些都是基本数据类型还是自定义类?如果是自定义类,则所有类都应具有
[DataContract]
属性。