gpt4 book ai didi

c# - JSON 序列化器和 CSLA 对象

转载 作者:太空宇宙 更新时间:2023-11-03 22:19:46 25 4
gpt4 key购买 nike

我们刚刚启动了一个新的 ASP.Net 项目,该项目使用 Web 服务将一些 CSLA 业务对象序列化为 JSON 数据,供我们的客户端 javascript/JQuery 代码使用。在客户端浏览器(Firefox 中的 Firebug)中查看 JSON 数据后,我们注意到业务对象中有大量我们不需要下载到浏览器的属性。

有没有办法阻止属性(除了将它们标记为私有(private))不被 JSON 序列化程序序列化?我们没有直接调用 JSONSerializer,而是在 WebMethod 上包含一个 ScriptMethod 声明。

<ScriptMethod(ResponseFormat:=ResponseFormat.Json)> _
<WebMethod()> _
Public Function getQuestions()

更新我们尝试了在公共(public)属性上添加属性的建议,但收到错误:

    Error 25 Attribute 'NonSerializedAtrribute' cannot be 
applied to 'Name' because the attribute is not valid
on the is declaration type.

现在,如果我们将 NonSerialized 添加到类中,那么它会起作用,但不会作用于属性。但是,我们确实希望对某些属性进行序列化。

有什么想法吗?

最佳答案

你应该使用 ScriptIgnore所有不应序列化的属性的属性。

如果您决定对数据序列化进行更多自定义,例如,将一个属性名称替换为另一个属性名称或转换数组中的某些属性等,您可以编写一个小的 JavaScriptTypeResolver哪个做的。

关于c# - JSON 序列化器和 CSLA 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3620768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com