可序列化对象排除从客户端调用我的公共属性
serializable object exclude my public property calling from client
我在Asp.net web api中工作,我的模型类如下
[Serializable]
public class Workspace
{
private string strID;
public string strName;
public string ID
{
get { return strID; }
set { strID = value; }
}
public string Name
{
get { return strName; }
set { strName = value; }
}
}
我在控制器
中有下列Get方法public Workspace GetWorkSpace()
{
if (objWorkspace == null)
{
objWorkspace = new Workspace();
objWorkspace.ID = Guid.NewGuid().ToString();
objWorkspace.Name = "Workspace 1";
}
return objWorkspace;
}
我试图得到这个对象使用Jquery如下
var uri = 'api/workspace/GetWorkspace';
$(document).ready(function () {
$.getJSON(uri)
.done(function (data) {
$('#workspaceId').append(data.ID);
$('#workspaceName').append(data.Name);
});
});
我在data中获得响应对象,但它排除了我的公共属性"ID"answers"Name",如下所示
strID: "a0a523c6-f657-40df-b957-114b87de02f8"
strName: "Workspace 1"
__proto__: Object
正如你看到的响应对象get "strID, and strName",模型类中的私有变量,响应数据中应该是ID和Name。此外,如果我从我的模型类中删除[Serializable]属性,我将得到所需的结果。谁能给我解释一下,我对[Serializable]属性做错了什么?
我很感激你的帮助
我使用自定义的ContractResolver
,设置:
public MyResolver()
{
IgnoreSerializableAttribute = true;
}
和这里记录的DefaultContractResolver。IgnoreSerializableAttribute属性:
true表示在序列化和反序列化类型时将忽略SerializableAttribute属性;否则,假的。
如果你不打算实现自定义解析器,你可以这样做:
- ASP。. NET Web API和[Serializable]类
从源代码中引用的代码片段:
((DefaultContractResolver)config
.Formatters
.JsonFormatter
.SerializerSettings
.ContractResolver
).IgnoreSerializableAttribute = true;
或者,您可以通过用[JsonObject]装饰Workspace类型来解决这个问题。
相关文章:
- 为什么可以't我在JavaScript中获取导航器对象的属性计数
- 我该如何解决这个问题?“未捕获的类型错误:无法读取 null 的属性'appendChild'”
- 我能得到所有以“”开头的属性吗;关于“;使用jquery
- 通过 Jquery 调用 tr 属性并找到我的内部复选框
- 变量/对象是否按值传递,为什么我不能在 javascript 中使用变量更改对象的属性
- 如何创建一个组件,我可以设置在 Angular 2 中的属性中获取 URL 数据
- 为什么我的jQuery .每次迭代都无法使用每个项目的属性
- 我一直得到“无法获得未定义或空引用的属性'长度'”
- 无权访问我的控制器 Angular 中的属性.js 1.3
- 属性在我的自定义构造函数中无法正常运行 - Javascript
- 为什么我的html节点保持类ng隐藏属性ng show=true
- 每天更改我的汤博乐主题的颜色属性
- 我把“;类“;SVG中存在但未应用的节点的属性!为什么?
- JavaScript-我可以用for循环中修改的属性将新结构推送到数组中吗
- Javascript:我如何定义一个对象'的属性
- 我的属性未正确追加
- JsTree:-为什么JsTree正在删除我的属性
- 为什么我的属性分配不正确
- 我怎么能给我的属性的默认数组访问传入的jQuery对象在我的插件
- 在主干中创建新对象时.js我的属性另存为零