如何將JavaScript對象的列表傳遞給Windows運行時組件C#?
實際上,正確的方法是將集合序列化爲json字符串並將此字符串傳遞給Windows運行時組件。並反序列化運行時組件端的json字符串以進行數據處理。之後,將序列化的json字符串返回到JavaScript uwp應用程序。關於如何在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);
代碼在組分:
public int[] ChangeArray([ReadOnlyArray()] int[] input)
{
int[] output =(int[])input.Clone();
// Manipulate the copy.
// ...
return output;
}
更多關於傳遞數組到Windows運行時組件請參考this article細節。