我有一个设备以这种格式发送数据的情况
[
{
"Metadata":{"DeviceID":"MWS55V","GatewayID":"abc1"},
"Payload": [{"Type":"401","Data":"17.51"}],
"Timestamp":"2018-11-01T09:33:05Z"},
{
"Metadata":{"DeviceID":"MWS55V","GatewayID":"abc1"},
"Payload": [{"Type":"401","Data":"18.28"}],
"Timestamp":"2018-11-01T09:34:05Z"
}
]
我添加了Azure Stream Analytics C# UDF
想到将整个对象用作参数,并根据Payload.Data
更改每个Payload.Type
。
但是当我尝试将Payload
对象作为参数传递给c# UDF
时,会引发
错误:**系统异常** ASA传递了一个不受支持的类型System.Object,将其以可变有效载荷封送给CSharp UDF Func
它的唯一工作方式是当我尝试类型(长,字符串等)的参数时。
尽管doc明确说明了受支持的类型,但是是否有办法在c# udf
内接收整个对象,或者该服务不是这种情况下的最佳选择,我需要使用其他方法吗? / p>
答案 0 :(得分:1)
有效负载对象是一个数组,这是Stream Analytics C#UDF中支持的类型。您的功能签名应如下所示:
public static string SampleUDF(Object[] input)
您应该不会对此看到错误。让我知道您是否仍然遇到问题。