Продолжая с другого вопроса , я пытаюсь передать данные между 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
.
РЕДАКТИРОВАТЬ : Глупый я, эта страница уже говорит мне, что мне нужносначала приведите его как IBoxArray
и получите массив через свойство Value
:
Platform::Array<unsigned char>^ binaryData = safe_cast<Platform::IBoxArray<unsigned char>^>(data->Lookup("bin"))->Value;
выполнит работу.