为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 C# 方法中传递 Json 对象作为参数

如何在 C# 方法中传递 Json 对象作为参数

C#
江户川乱折腾 2023-07-09 16:14:11
我在控制器中有以下方法,并传递JsonResult给 C# 中的另一个类 (Receiver.cs)。那么,在 Receiver.cs 类中作为参数的正确数据类型是什么?我使用过JsonResult,但不确定它是否是这种情况的最佳选择?我还将此结果作为 Json 对象从 Receiver.cs 类返回给客户端。控制器:public void Create() {    //code omitted for brevity    var data = GetData();     var data = Json(new { Data = data, success = true }, JsonRequestBehavior.AllowGet);    Receiver.BroadcastData(data); }这是 Receiver.cs 中的方法:接收器.cs:public class Receiver{    public static void BroadcastData(JsonResult data)    {        ...    }}更新: 实际上我使用 ASP.NET MVC 和 SignalR。这里我想将 Json 对象从 Controller 传递到 Hub 类。之后,我会将这个 Json 对象广播给客户端。
查看完整描述

1 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

我假设您想向每个 SignalR 连接发送一个 JSON 对象。


using 的Json()目的是从控制器操作返回 JSON 对象,因此它并不适合这里。


但 SignalR 让这一切变得简单。您发送到 SignalR 客户端的任何对象都会被序列化为 JSON。所以你不必担心序列化。您不必告诉它“我希望将其作为 JSON 发送”。


因此,如果您想要一个通用方法将任何类型的对象发送到客户端,只需接受object. 当您将其传递给 SignalR 时,它会将其序列化为客户端的 JSON。


public void Create() {


    //code omitted for brevity

    var data = GetData(); 


    Receiver.BroadcastData(data); 

}

public class Receiver

{

    public static void BroadcastData(object data)

    {

        ...

    }

}

但是,我并不完全知道这会有多大用处。客户端仍然必须知道它是什么类型的数据,以便能够以有意义的方式处理它。因此,您可能会发现实际上可以从不同的 SignalR 方法中受益,将特定类型的数据传递给客户端,因此客户端已经知道它正在获取什么类型的数据。


查看完整回答
反对 回复 2023-07-09
  • 1 回答
  • 0 关注
  • 210 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信