【发布时间】:2014-11-10 21:24:20
【问题描述】:
我有一个 Web API 控制器方法,它返回一个对象,该对象给客户端一个 500 内部服务器错误。在服务器上,输出窗口显示“Newtonsoft.Json.JsonSerializationException”。但是我看不出我要返回的课程有什么问题……而且我确信这在历史上一直有效。任何帮助将不胜感激!
编辑:这是 Web API 无法序列化“动态实体”的问题吗?生成类的代码在这里:
var id = User.Identity.GetUserId();
var user = db.Users
.Where(u => u.Id == id)
.Include(u => u.Friends)
.FirstOrDefault();
return user;
我正在返回以下课程;
public class User : IdentityUser
{
public User()
{
this.Friends = new List<UserFriend>();
}
public string PhoneNumber { get; set; }
public string Email { get; set; }
public List<UserFriend> Friends { get; set; }
public bool HasRegistered { get; set; }
public string LoginProvider { get; set; }
}
“UserFriend”类如下所示;
public class UserFriend
{
public int UserFriendId { get; set; }
public string Id { get; set; }
public string FriendUserId { get; set; }
public string FriendUserName { get; set; }
public string FriendPhoneNumber { get; set; }
}
奇怪的是,当我将鼠标悬停在服务器上返回的对象上时,类型为:{System.Data.Entity.DynamicProxies.User_7283E76A736B4DD47E89120E932CD5C04B62F84C316961F02CDAE3EEF4786504}。我不确定这是什么.. :-O
【问题讨论】:
-
您能添加完整的异常消息吗?在我看来,您似乎有一个循环引用 User -> UserFriend -> User,类似于 stackoverflow.com/questions/19664257/…
-
这是我得到的唯一错误文本。而且我已经包含了上面的 UserFriend 类,你可以看到没有循环引用。
标签: json azure windows-phone-8 asp.net-web-api