问题标签 [scriptignore]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 跳过 [ScriptIgnore] 一次
这种情况的环境:
我遇到过一种情况,最好包含一个标记为[ScriptIgnore]
. 如果没有该属性,该字段将构成循环引用并导致引发异常。原因与此类似:
所以你可以在这里看到,一个Foo
可以有很多关联的Bars
. 并且 aBar
有一个关联的Foo
.
回到情况。我正在使用包含语句在控制器中加载此关联:
没有抛出错误,因为 include 不受[ScriptIgnore]
注释的影响。调试时,检查时正确构建关联。有一个 的列表foos
,每个foo
都有一个 的关联列表Bars
。
现在我想序列化这个构造的列表。我有一个充满数据的视图模型,它看起来像这样:
所以我将此视图模型传递给视图并序列化它:
不会引发异常,但是,序列化会正确跳过Bars
标有 的字段 ( ) [ScriptIgnore]
。经过consol.log(fooViewModel)
检查,很明显有一个 的数组Foo
,但是,Bar
在任何Foos
.
有没有一种方法可以让我一次跳过这个[ScriptIgnore]
标签?我意识到,如果它每次都跳过,那么序列化程序会序列化 Foo,查看并查看 Bar 类型的集合,序列化每个 Bar,注意 Bar 有一个关联的 Foo,序列化 Foo,注意 Foo 有一个 Bar 类型的集合。 。ETC。我只想抢Bar
第一次的收藏。有没有办法做到这一点?我意识到它将尝试Foo
从 Bar 序列化,但它将是空的。这一切都是通过预先加载完成的,并且整个对象图都已经构建好了。
c# - 如何让 JavaScriptSerializer 忽略 [ScriptIgnore] 标签?
我需要让JavaScriptSerializer忽略[ScriptIgnore]
标签。我想我可以使用自定义JavaScriptConverter来做到这一点。但是,我不太确定。我需要做的就是忽略该属性,其余的可以通过基本定义来完成。您可以在此处查看代码JavaScriptSerializer
。
我担心实现自定义转换器(例如此示例)最终会无法正确序列化复杂的自定义对象图。
回顾微软的 JavaScriptSerializer 代码,上线252-253
代码:
是我真正需要绕过的唯一部分。我只需要注释掉那行代码。不幸的是,这实际上是不可能的,所以我需要一些方法来忽略整个过程的那一部分。
我怎样才能忽略那行代码,或者以某种方式提供一个不忽略[ScriptIgnore]
属性的自定义实现?
c# - ScriptIgnore 不适用于 WCF REST 服务应用程序
我启动了一个 Visual Studio WCF Rest 服务应用程序项目,我希望有一个服务返回带有序列化对象的 Json 格式消息,并且我希望对象的某些字段不被序列化。我必须说,我对 WCF 的了解非常基础,并且我使用了 Visual Studio 中的 Rest Service Application 项目,因为它是一种快速实现我需要的简单方法。
假设这是我拥有的对象:
这是我的代码
我到处读到我需要做的是将 [ScriptIgnore] 属性分配给我不想序列化的属性。但如果我这样做,它就不起作用。无论如何,我都会将它们序列化。
我实现我想要做的唯一方法是以这种方式声明我想要返回的对象:
通过这种方式,我可以根据需要对类进行序列化。但这让我很烦恼,因为我可能没有正确地做这件事。我这样做对吗?
c# - Asp.net ScriptIgnore 属性不起作用
这是我的 POCO 课程:
我想将 A 的对象序列化为 Json。但是当我尝试序列化 POCO 代理对象时,我不断收到循环引用异常(尽管它适用于 POCO 对象)。我通过谷歌搜索,发现 ScriptIgnore 属性应该在 .Net 4.5 中工作。但我正在使用.Net 4.5,显然它不起作用。谁能告诉我如何解决这个问题?
c# - 在结果 json 中隐藏类属性
我有一个检索 mongodb 对象的类,这个类是我的应用程序的 json 输出。问题是我想隐藏我无法完成的“_id”字段。我尝试这样做(我在这里接受的答案中找到了):
但是“_id”属性仍然显示在我的结果中。我要提几件事:-我使用.net MVC4 API项目-我使用的mongodb项目是完整结果中的一个孩子:
{“响应”:{“数据”:{“_id”:“51c38b14dc2ab62eb0265395”,.....},...“版本”:1.0}
asp.net-mvc - ScriptIgnore 属性不适用于部分类
我在部分视图上使用 ScriptIgnore 标记来阻止属性序列化时遇到问题。
var docs = @Html.Raw(Json.Encode(Model))
有趣的是,当我将属性直接添加到 .tt 文件中的部分类时,它按预期工作,但是因为当我执行代码生成时该文件将被覆盖,所以我尝试使用 MetadataType
我仍然遇到同样的错误:在序列化“DocumentCategory”类型的对象时检测到循环引用。
因为 DocumentCategory 包含分层数据。
任何帮助将不胜感激!
部落84
c# - 忽略继承类中的 [ScriptIgnore] 属性
我有一个基类,其中一个属性具有 ScriptIgnore 属性:
我还有另一个继承自基类的类:
我尝试覆盖 Name 属性,但它仍然没有被序列化。有没有办法覆盖 ScriptIgnore 属性(在继承类中忽略它)?
c# - ScriptIgnore 导致其他属性,例如 StringLength 被忽略
我有一些从基类继承的类。
上面的代码创建了一个 maxLength 为16的迁移。
到目前为止一切正常。
但是,当我[ScriptIgnore]
为 Test 属性添加属性时,
然后它在迁移下面创建, maxLength 为8000:
在我看来,这[ScriptIgnore]
压倒了所有其他属性,这很奇怪。
当我创建一个空的 MVC 项目时,我无法复制该问题。我相信我的项目有问题。会是什么?