加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C#Rest API返回动态对象

发布时间:2020-12-16 06:51:28 所属栏目:百科 来源:网络整理
导读:我有一个网络服务 WebServiceHost webServiceHost= new WebServiceHost(typeof(WebMethods),new Uri(url));webServiceHost.Open();public class Fish { public string name = "I am a fish"; }public class Dog { public int legs = 4; }public class Cat {
我有一个网络服务

WebServiceHost webServiceHost= new WebServiceHost(typeof(WebMethods),new Uri(url));
webServiceHost.Open();

public class Fish { public string name = "I am a fish"; }
public class Dog { public int legs = 4; }
public class Cat { public DateTime dt = DateTime.Now;}

我的一个webMethods应该返回一个动态对象

的WebMethod:

解决方案1

[OperationBehavior]
[WebGet(ResponseFormat = WebMessageFormat.Json,UriTemplate = "/isTest?class={cl}")]
object isTest(string cl)
{
    object obj;

    switch (cl)
    {
        case "fish":
            obj= new Fish();
            break;
        case "dog":
            obj= new Dog();
            break;
        default:
            obj= new Cat();
            break;

    }
    return obj;

}

解决方案2

[OperationBehavior]
[WebGet(ResponseFormat = WebMessageFormat.Json,UriTemplate = "/isTest?class={cl}")]
dynamic isTest(string cl)
{
    dynamic obj;

    switch (cl)
    {
        case "fish":
            obj= new Fish();
            break;
        case "dog":
            obj= new Dog();
            break;
        default:
            obj= new Cat();
            break;

    }
    return obj;
}

两者都不起作用.响应是ERR_CONNECTION_RESET

知道如何实现它吗?
感谢帮助.

解决方法

您没有返回JSON字符串.
将以下内容添加到您的用途中:

using System.Web.Script.Serialization;

以及你体内的以下内容

return new JavaScriptSerializer().Serialize(obj);

将返回类型更改为字符串而不是对象

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读