简单对象和数组是如何传递的?

本文关键字:何传递 单对象 数组 简单 | 更新日期: 2023-09-27 17:55:02

我对负责将简单Javascript对象和数组转换为"托管类型"(为简洁起见,c#)对象的转换机制有点困惑。

微软文章的第一部分说明(或似乎暗示)转换是隐式的和自动的:

  • JavaScript数组被转换为object[].
  • JavaScript字典被转换为字典。

然而,随后的章节似乎提到了帮助器createcreateObject函数在转换中的必要性:

数组:

数组和列表类型

默认值是显式按值封送从JavaScript到托管代码。不支持对托管输入参数的自动JSON序列化。相反,您必须显式地使用可创建类型或创建助手方法。

 ...
 ...

按值封送处理

如果要按值将JavaScript数组传递给托管代码,则target .NET Framework属性或输入参数必须键入为ScriptObject之外的东西。然后必须使用中的一个创建createObject helper方法来显式强制从将JavaScript数组转换为。net Framework列表或数组类型。

("字典和自定义类型"有几乎相同的一对子句)

是我遗漏了什么,还是文档矛盾?简单对象和数组的转换是隐式和自动的吗?如果是,后面的从句适用于什么对象?如果没有,为什么在隐式转换的基本Javascript类型中提到它们?

简单对象和数组是如何传递的?

1)本文将给出答案。一段你没有引用的段落

JavaScript字典将按value递归封送到目标。net框架类型。Silverlight将使用JSON序列化器将JavaScript字典反序列化到符合。net框架自定义类型或字典。

2)因为自定义类型可能在已知类型中。如果你是这样一个异端,.net确保你可以随意绕过转换。我说异端,既然如此,为什么要使用json呢?=)