将对象中的列表发送到Wcf服务

Hod*_*lom 5 javascript ajax wcf jquery json

我用Wcf ServiceJS.

我发送信息到我的服务AJAX.

我在服务中有一个接受以下对象的函数:

  [DataContract]
    public class Business
    {
        [DataMember]
        public string Name { get; set; }
        [DataMember]
        public string Desc { get; set; }        
        [DataMember]
        public List<BusinessService> Services { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

BusinessService.cs:

   [DataContract]
    public class BusinessService
    {
        [DataMember]
        public string Name { get; set; }
        [DataMember]
        public string Desc { get; set; }
        [DataMember]
        public int LongTime { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

我解析JS中的对象JSON并将它们发送到服务.

这里发送到wcf函数的json:

"{"ManageBusiness":{"Name":"aaaaaa","Desc":"aaaaaaaaaaaa","Services":[{"Name":"aaaaaa","Desc":"aaaaaa","LongTime":30},{"Name":"aaaaaa1","Desc":"aaaaaa","LongTime":30}]}}"
Run Code Online (Sandbox Code Playgroud)

除了Services列表之外,一切都正常.

该列表以wcf函数为空.

我不知道为什么会这样,我会很感激帮助吗?

Geo*_*kis 4

List<T>您无法从 JSON 数据实例化 a 。你能做的就是替换:

[DataContract]
    public class Business
    {
        [DataMember]
        public string Name { get; set; }
        [DataMember]
        public string Desc { get; set; }        
        [DataMember]
        public List<BusinessService> Services { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

[DataContract]
    public class Business
    {
        [DataMember]
        public string Name { get; set; }
        [DataMember]
        public string Desc { get; set; }        
        [DataMember]
        public BusinessService[] Services { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

也就是说,替换List<T>Array of T