从another question开始,我试图在AppServiceConnection
之间传递数据。我对发送和接收字节数组感兴趣。
感谢this question,我知道了可接受的类型。但是问题是我不知道如何在接收端重现数据,也没有文档。
特别是,我有以下内容:
Platform::Array<unsigned char>^ binaryData;
// ... Omitted code to construct the actual data ...
auto data = ref new ValueSet();
data->Insert("bin", binaryData);
if (_connection != nullptr)
create_task(_connection->SendMessageAsync(data));
在我的服务代码和接收者代码中,我有
// Reproduce the data for processing
Platform::Array<unsigned char>^ binaryData = safe_cast<Platform::Array<unsigned char>^>(data->Lookup("bin"));
但这会使接收器崩溃。我尝试打印出对象data->Lookup("bin")
,并看到它的类型为Windows.Foundation.IArrayReference
。
编辑:愚蠢的我,this page已经告诉我,我需要先将其转换为IBoxArray
并通过Value
属性获取数组:>
Platform::Array<unsigned char>^ binaryData = safe_cast<Platform::IBoxArray<unsigned char>^>(data->Lookup("bin"))->Value;
会做。
答案 0 :(得分:0)
The documentation for IReferenceArray说,首先将其强制转换为IBoxArray
并通过Value
属性获取实际数组:更改为
Platform::Array<unsigned char>^ binaryData = safe_cast<Platform::IBoxArray<unsigned char>^>(data->Lookup("bin"))->Value;
会做。