C# JSON序列化程序和CSLA对象

C# JSON序列化程序和CSLA对象,c#,asp.net,vb.net,web-services,json,C#,Asp.net,Vb.net,Web Services,Json,我们刚刚启动了一个新的ASP.Net项目,该项目使用web服务将一些CSLA业务对象序列化为用于客户端javascript/JQuery代码的JSON数据。在查看客户端浏览器(Firefox中的Firebug)中的JSON数据后,我们注意到业务对象中有大量属性不需要下载到浏览器中 有没有办法排除属性(而不是将其标记为私有)被JSON序列化程序序列化?我们不是直接调用JSONSerializer,而是在WebMethod上包含了一个ScriptMethod声明 <ScriptMethod(R

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

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

<ScriptMethod(ResponseFormat:=ResponseFormat.Json)> _
<WebMethod()> _
Public Function getQuestions()
现在,如果我们将非序列化添加到类中,那么它将起作用,但不会对属性起作用。但是,我们确实希望序列化某些属性


有什么想法吗?

您可以尝试在属性上放置一个NonSerializedAttribute,但不确定它是否与Json序列化程序一起工作


编辑:如果您使用的是.net 4.0,您可以尝试使用ISerializable接口…

您可以尝试在属性上放置非序列化属性,但不确定它是否与Json序列化程序一起工作

编辑:如果您使用的是.net 4.0,您可以尝试使用ISerializable接口…

您应该为所有不应序列化的属性使用属性

如果您决定对数据序列化进行更多的自定义,例如,用另一个属性名称替换一个属性名称,或者转换数组中的某些属性等等,那么您可以编写一个小程序来完成此操作。

您应该对所有不应序列化的属性使用属性


如果您决定对数据序列化进行更多的自定义,例如,用另一个属性名称替换一个属性名称或转换数组中的某些属性等等,那么您可以编写一个小脚本来完成此任务。

ScriptIgnore应该按照Oleg的建议为您完成此任务。查看此详细示例

ScriptIgnore应该按照Oleg的建议为您完成这项工作。查看此详细示例

我将试一试。我会让你知道的,我会试一试的。我会让你知道的。我今天会试试这个!谢谢奥列格!我会让你知道的。看起来它正在按描述工作。作为补充说明,我们发现需要添加对System.Web.Extensions的引用。谢谢你的帮助!我今天要试试这个!谢谢奥列格!我会让你知道的。看起来它正在按描述工作。作为补充说明,我们发现需要添加对System.Web.Extensions的引用。谢谢你的帮助!
    Error 25 Attribute 'NonSerializedAtrribute' cannot be 
    applied to 'Name' because the attribute is not valid 
    on the is declaration type.