带有eventData对象的EventHubTrigger C#不工作

带有eventData对象的EventHubTrigger C#不工作,c#,azure,azure-functions,azure-eventhub,C#,Azure,Azure Functions,Azure Eventhub,在我遵循以下文章的说明之后 我创建了一个EventHubTrigger,如下所示: using System; public static void Run(string myEventHubMessage, ILogger log) { log.LogInformation($'C# Event Hub trigger function processed a message: {myEventHubMessage}'); } 这确实没有任何问题,但由于我确实需要额外的元信息,我将代码

在我遵循以下文章的说明之后

我创建了一个EventHubTrigger,如下所示:

using System;

public static void Run(string myEventHubMessage, ILogger log)
{
log.LogInformation($'C# Event Hub trigger function processed a message: {myEventHubMessage}');
}
这确实没有任何问题,但由于我确实需要额外的元信息,我将代码更改为以下内容(在第二篇链接文章中描述):

但是这段代码会导致以下错误消息(顺便说一句,我还绑定了使用不推荐的TraceWriter而不是ILogger来完全遵循文章,但这会导致相同的错误)

我现在的问题是,有没有人知道如何让这段代码运行

当然,这与程序集有关,但aricle指出,在联机门户编辑器中工作时,没有进一步的步骤可执行

男人先谢谢你

费利克斯

附言:

host.json:

{

  "version": "2.0"

}
extensions.csproj的内容是:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>

    <TargetFramework>netstandard2.0</TargetFramework>

    <WarningsAsErrors />

  </PropertyGroup>

  <ItemGroup>

    <PackageReference Include="Microsoft.Azure.WebJobs.Extensions.EventHubs" Version="3.0.0" />

    <PackageReference Include="Microsoft.Azure.WebJobs.Extensions.ServiceBus" Version="3.0.0" />

    <PackageReference Include="Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator" Version="1.0.1" />

  </ItemGroup>

</Project>

netstandard2.0

好的,这个示例是针对函数1.x的。在2.x通常可用之后,我们创建的函数默认处于~2运行时,我们可以在host.json中看到
“version”:“2.0”

请尝试下面的代码,元数据存储在Microsoft.Azure.EventHubs.EventData的
SystemProperties

#r "../bin/Microsoft.Azure.EventHubs.dll"

using System;
using Microsoft.Azure.EventHubs;

public static void Run(EventData myEventHubMessage, ILogger log)
{
    log.LogInformation($"EnqueuedTimeUtc={myEventHubMessage.SystemProperties.EnqueuedTimeUtc}");
    log.LogInformation($"SequenceNumber={myEventHubMessage.SystemProperties.SequenceNumber}");
    log.LogInformation($"Offset={myEventHubMessage.SystemProperties.Offset}");
}
还要注意,我们需要对C#中的字符串使用双引号
,请参见代码中的

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>

    <TargetFramework>netstandard2.0</TargetFramework>

    <WarningsAsErrors />

  </PropertyGroup>

  <ItemGroup>

    <PackageReference Include="Microsoft.Azure.WebJobs.Extensions.EventHubs" Version="3.0.0" />

    <PackageReference Include="Microsoft.Azure.WebJobs.Extensions.ServiceBus" Version="3.0.0" />

    <PackageReference Include="Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator" Version="1.0.1" />

  </ItemGroup>

</Project>
#r "../bin/Microsoft.Azure.EventHubs.dll"

using System;
using Microsoft.Azure.EventHubs;

public static void Run(EventData myEventHubMessage, ILogger log)
{
    log.LogInformation($"EnqueuedTimeUtc={myEventHubMessage.SystemProperties.EnqueuedTimeUtc}");
    log.LogInformation($"SequenceNumber={myEventHubMessage.SystemProperties.SequenceNumber}");
    log.LogInformation($"Offset={myEventHubMessage.SystemProperties.Offset}");
}