C#Rest API返回动态对象
作者:互联网
我有一个网络服务
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);
将返回类型更改为字符串而不是对象
标签:json,c,webmethod,webservicehost 来源: https://codeday.me/bug/20190711/1431508.html