斗士狗 2012-02-07 18:34 采纳率: 0%
浏览 37

WCF的复杂对象?

I'm having a problem calling the WCF service from JQuery AJAX. GetUserDetails works fine unless I try add this code to the User class:

[DataMember]
public virtual Role Role { get; set; }

After code is added I get error status 12152. If I comment out [DataMember] attribute of the Role method everything works.

Here's OperationContract for the method:

    [OperationContract]
    [WebInvoke(Method = "POST",
    ResponseFormat = WebMessageFormat.Json,
    RequestFormat = WebMessageFormat.Json,
    BodyStyle = WebMessageBodyStyle.Wrapped
    )]
User GetUserDetails(string userName);

And User class:

    [DataContract]
[KnownType(typeof(Role))]
public class User 
{
    [DataMember]
    public virtual int UserId { get; set; }
    [DataMember]
    public virtual string UserName { get; set; }
    [DataMember]
    public virtual string FirstName { get; set; }
    [DataMember]
    public virtual string LastName { get; set; }
    [DataMember]
    public virtual string Email { get; set; }
    [DataMember]
    public virtual string Company { get; set; }
    [DataMember]
    public virtual string Comments { get; set; }
    [DataMember]
    public virtual bool IsApproved { get; set; }
    [DataMember]
    public virtual bool IsLocked { get; set; }
    [DataMember]
    public virtual bool LoggedIn { get; set; }

}

Role class

[DataContract]
public class Role
{
    [DataMember]
    public virtual string Name { get; set; }
    [DataMember]
    public virtual string Description { get; set; }
}

I would appreciate your help!

  • 写回答

1条回答

  • weixin_33734785 2012-02-08 17:43
    关注

    thank you for your comments. Enabling tracing helped to me find the problem. The problem was because I used NHibernate, Role object were lazy loaded and proxy for that object were used and that proxy object couldn't be serialized.

    Type 'DecoratorAopProxy_70ab9a81c5b84b6dbf624b0a94f7028e' cannot be ISerializable and have DataContractAttribute attribute.
    

    I have turned off lazy loading and that solved the issue. Thank you very much!

    评论

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大