使用复杂参数的 Edge 上的 Azure 流分析 c# UDF

Azure Stream Analytics c# UDF on Edge using complex parameter

我有一个设备以这种格式发送数据的场景

[   
{
 "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.Type.

更改每个 Payload.Data

但是当我尝试将 Payload 对象作为参数传递给 c# UDF 时,抛出了异常

Error : ** System Exception ** ASA passed a non-supported type System.Object to be marshaled to CSharp UDF Func at variable payload

唯一可行的方法是当我尝试类型(长、字符串等)的参数时。

虽然这个 doc 明确说明了支持的类型,但有没有办法在 c# udf 中接收整个对象,或者这个服务不是这个场景的最佳选择,我需要使用其他东西?

Payload 对象是一个数组,它是流分析 C# UDF 中支持的类型。您的函数签名应如下所示:

public static string SampleUDF(Object[] input)

你不应该看到这个错误。如果您仍然 运行 遇到问题,请告诉我。