我有一个CodeWithMessage类,我想从我的webservice作为json返回。
该类定义为
namespace UserSite //Classes For my site
{
namespace General
{
public class CodeWithMessage
{
private int iCode = 0;
private string sMessage = "";
public CodeWithMessage(int Code, string Message)
{
iCode = Code;
sMessage = Message;
}
public CodeWithMessage()
{
}
public void Message(string lMessage)
{
sMessage = lMessage;
}
public void Code(int lCode)
{
iCode = lCode;
}
}
在我的网络服务中
[WebMethod(Description = "Creates A New Blog.")]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public CodeWithMessage AddNewBlog(string sTitle, string sDescription, string sOohrl, int iCategory=30)
{
CodeWithMessage CWM;
CWM = new CodeWithMessage();
CWM.Message("That url Is In Use");
CWM.Code(0);
return CWM;
我发布了正确的值(我截断了函数,但它正在获取它需要的东西并执行) 我回来了
{"d":{"__type":"UserSite.General.CodeWithMessage"}}
我不确定为什么我没有使用值返回实际的json对象,而只是返回类名?我以为asp.net会自动序列化对象?不是吗?
提前致谢
答案 0 :(得分:3)
您必须使用JavaScriptSerializer的公共属性来序列化您想要的JSON。 JavaScriptSerializer无法公开方法或私有字段。
namespace UserSite //Classes For my site
{
namespace General
{
public class CodeWithMessage
{
public int Code { get; set; }
public string Message { get; set; }
}
}
}
..............
//usage
CodeWithMessage CWM = new CodeWithMessage();
CWM.Message = "That url Is In Use";
CWM.Code = 0;
return CWM;