JavaScriptからWindowsへオブジェクトのリストを渡す方法ランタイムコンポーネントC#?
実際に正しい方法は、コレクションをjson文字列にシリアル化し、この文字列をWindowsランタイムコンポーネントに渡すことです。データ処理のためにランタイムコンポーネント側でjson文字列を逆シリアル化します。その後、シリアル化されたjson文字列をJavaScript uwp appに返します。 JavaScriptでシリアライズする方法については、this classを参照してください。C#でシリアライズする方法については、this namespcaseを参照してください。だから、JavaScriptの側で、あなたのコードは、次のことのように:
var Test = [];
for (var i = 1; i < 6; i++) {
Test.push({ category_id: i });
}
var Conncetion = RuntimeComponent1.MyClass();
var Testserialation = JSON.stringify(Test);
var resultnew = Conncetion.newFunction(Testserialation);
var Testreturn = JSON.parse(resultnew);
とWindowsランタイムコンポーネントで
:これが機能しない理由
public sealed class MyClass
{
public string NewFunction(string jsonstring)
{
JsonArray entity= JsonArray.Parse(jsonstring);
return entity.ToString();
}
}
私はわかりません。
コードスニペットによれば、オブジェクト配列を作成し、実行時コンポーネントにIEnumarable<DtoClass>
として渡そうとしました。あなたは配列を渡しました、私の意見では配列として受け取ることができるはずです。そして私はオブジェクトが自動的にDtoClass
に解析されるとは思わない。認識できる文字列またはint配列を使用する場合。例えば、int配列:
var newTest = [1, 2, 3, 4];
var result2 = Conncetion.changeArray(newTest);
コードコンポーネントで:Windowsランタイムコンポーネントへの配列を渡す約
public int[] ChangeArray([ReadOnlyArray()] int[] input)
{
int[] output =(int[])input.Clone();
// Manipulate the copy.
// ...
return output;
}
詳細this articleを参照してください。