単純な Javascript オブジェクトと配列を "マネージド型" (簡潔にするために、C#) オブジェクトに変換するための変換メカニズムについて、私は少し混乱しています。
これに関するマイクロソフトの記事の最初のセクションでは、変換が暗黙的かつ自動であると述べています (または暗示しているようです)。
- JavaScript 配列は object[] に変換されます。
- JavaScript 辞書は Dictionary に変換されます。
create
ただし、後続のセクションでは、変換のためのヘルパーとcreateObject
関数の必要性について言及しているようです。
配列:
配列型とリスト型
デフォルトは、JavaScript からマネージ コードへの明示的な値によるマーシャリングです。管理された入力パラメーターへの自動 JSON シリアル化はサポートされていません。代わりに、作成可能な型または create ヘルパー メソッドを明示的に使用する必要があります。
... ...
値によるマーシャリング
JavaScript 配列をマネージド コードに値渡しする場合は、対象の .NET Framework プロパティまたは入力パラメーターを ScriptObject 以外の型にする必要があります。次に、create またはcreateObjectヘルパー メソッドのいずれかを使用して、JavaScript 配列から .NET Framework のリストまたは配列型への変換を明示的に強制する必要があります。
(「辞書とカスタム型」にはほぼ同じ句のペアがあります)
不足しているものはありますか、それともドキュメントが矛盾していますか? 単純なオブジェクトと配列の変換は暗黙的かつ自動的に行われますか? もしそうなら、後者の条項はどのオブジェクトに適用されますか? そうでない場合、暗黙的に変換されるプリミティブな Javascript 型の中で言及されているのはなぜですか?