这似乎是微软的错误。如果我尝试从客户端调用的服务器中的函数返回一个对象,并且该对象具有对它自己的循环引用:
public class User
{
public User OtherUser;
}
public User GetUser()
{
User user = new User();
user.OtherUser = new User();
user.OtherUser.OtherUser = user;
return user.OtherUser;
}
再次调用服务器功能,然后集线器不响应进一步的呼叫,任何人遇到此行为?我转而使用对象的id而不是对象的引用来解决这个问题。
答案 0 :(得分:1)
您可以考虑采用SignalR和Web API的替代模型。 SignalR用于将数据推送到客户端,对吗?如果客户不在那里怎么办?在这种情况下,将大型对象从服务器推出到无法拾取的空隙中是没有意义的。
另一种方法是使用SignalR来推送小块信息 - 例如用户ID - 然后让浏览器回调服务(因此Web API)以在准备好时获得更大的有效负载。
答案 1 :(得分:0)