C# 如何获取AllJoyn byte[]属性
我有一个像这样的AllJoyn酒店C# 如何获取AllJoyn byte[]属性,c#,windows-10-universal,alljoyn,C#,Windows 10 Universal,Alljoyn,我有一个像这样的AllJoyn酒店 <property name="DeviceAddresses" type="ay" access="read"> 属性值通过以下方式创建: object o = Windows.Foundation.PropertyValue.CreateUInt8Array(value); 但是我找不到方法(强制转换或其他方式)将字节取出。我用来访问AllJoyn方法。它使用 IAsyncOperation<InvokeMethodResult>
<property name="DeviceAddresses" type="ay" access="read">
属性值通过以下方式创建:
object o = Windows.Foundation.PropertyValue.CreateUInt8Array(value);
但是我找不到方法(强制转换或其他方式)将字节取出。我用来访问AllJoyn方法。它使用
IAsyncOperation<InvokeMethodResult> InvokeAsync(IList<object> @params);
编辑:如果不想自己编程,可以使用。目前还不确定是否支持字节数组
IAsyncOperation<InvokeMethodResult> InvokeAsync(IList<object> @params);
InvokeMethodResult result = await MyAllJoynMethod.InvokeAsync(new List<object> { "parameter", 2 });
if (result.Status.IsSuccess)
{
var resultList = result.Values as IList<object>;
foreach (var resultListItem in resultList)
{
var pairs = resultListItem as IList<KeyValuePair<object, object>>;
foreach (var pair in pairs)
{
var key = pair.Key as string; //<- type string taken from MyAllJoynMethod definition
var variant = pair.Value as AllJoynMessageArgVariant;//<- type AllJoynMessageArgVariant taken from MyAllJoynMethod definition (variant)
if (variant.TypeDefinition.Type == TypeId.Uint8Array)
{
var array8 = j as IList<object>;
foreach (byte b in array8)
{
// do something with b
}
}
}
}
}