在 UWP AppServiceConnection 中检索字节数组
Retrieving a byte array in an UWP AppServiceConnection
从 继续,我试图在 AppServiceConnection
之间传递数据。我对发送和接收字节数组感兴趣。
感谢 ,我知道可接受的类型。但问题是我不知道如何在接收端重现数据,而且没有这方面的文档。
特别是,我有以下内容:
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
并通过 [=17= 获取数组] 属性:
Platform::Array<unsigned char>^ binaryData = safe_cast<Platform::IBoxArray<unsigned char>^>(data->Lookup("bin"))->Value;
会完成任务的。
The documentation for IReferenceArray 表示首先将其转换为 IBoxArray
并通过 Value
属性 获取实际数组:更改为
Platform::Array<unsigned char>^ binaryData = safe_cast<Platform::IBoxArray<unsigned char>^>(data->Lookup("bin"))->Value;
会完成任务的。
从 AppServiceConnection
之间传递数据。我对发送和接收字节数组感兴趣。
感谢
特别是,我有以下内容:
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
并通过 [=17= 获取数组] 属性:
Platform::Array<unsigned char>^ binaryData = safe_cast<Platform::IBoxArray<unsigned char>^>(data->Lookup("bin"))->Value;
会完成任务的。
The documentation for IReferenceArray 表示首先将其转换为 IBoxArray
并通过 Value
属性 获取实际数组:更改为
Platform::Array<unsigned char>^ binaryData = safe_cast<Platform::IBoxArray<unsigned char>^>(data->Lookup("bin"))->Value;
会完成任务的。