gpt4 book ai didi

c# - 将 JSON 数据路由到 Azure 中的事件中心

转载 作者:太空宇宙 更新时间:2023-11-03 18:53:49 25 4
gpt4 key购买 nike

我遇到了一种情况,需要通过事件中心将 JSON 数据(JSON 文件,而不是转换为 JSON)发送到时间序列见解。但由于我缺乏 C# 经验,无法发送数据。

我可以发送其他示例消息,但不能发送 JSON。我怎样才能做到这一点?

任何帮助或见解将不胜感激。

using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Globalization;
using System.IO;
using Microsoft.ServiceBus.Messaging;

namespace ConsoleApp5
{
class Program
{
static string _connectionString = "Endpoint..;

static async Task MainAsync(string[] args)
{
var client = EventHubClient.CreateFromConnectionString(_connectionString, "eventhub");
var json = File.ReadAllText(@"C:\Users\Shyam\Downloads\personal.json");
var eventData = new EventData(Encoding.UTF8.GetBytes(json));
await EventHubClient.SendAsync(eventData);

}
}
}

它在异步方法中抛出一个错误。

严重性代码描述项目文件行抑制状态错误 CS0120 非静态字段、方法或属性“EventHubClient.SendAsync(EventData)”需要对象引用 ConsoleApp5 C:\Users\Shyam\source\repos\ConsoleApp5\ConsoleApp5\Program.cs 21 Active

更新:

namespace jsonData
{
using System;
using System.Text;
using System.IO;
using System.Threading.Tasks;
using Microsoft.Azure.EventHubs;

public class Program
{
private static EventHubClient eventHubClient;
private const string EhConnectionString = "Endpoint=sb://";
private const string EhEntityPath = "hub";

public static void Main(string[] args)
{
MainAsync(args).GetAwaiter().GetResult();
}

private static async Task MainAsync(string[] args)
{
// Creates an EventHubsConnectionStringBuilder object from the connection string, and sets the EntityPath.
// Typically, the connection string should have the entity path in it, but this simple scenario
// uses the connection string from the namespace.
var connectionStringBuilder = new EventHubsConnectionStringBuilder(EhConnectionString)
{
EntityPath = EhEntityPath
};

eventHubClient = EventHubClient.CreateFromConnectionString(connectionStringBuilder.ToString());

var json = File.ReadAllText(@"D:\Sample.json");
var eventData = new EventData(Encoding.UTF8.GetBytes(json));
await eventHubClient.SendAsync(eventData);

await eventHubClient.CloseAsync();


Console.WriteLine("Press ENTER to exit.");
Console.ReadLine();
}
}
}

最佳答案

将事件包装到 JSON 数组中:

using (var ms = new MemoryStream())
using (var sw = new StreamWriter(ms))
{
// Wrap events into JSON array:
sw.Write("[");
for (int i = 0; i < events.Count; ++i)
{
if (i > 0)
{
sw.Write(',');
}
sw.Write(events[i]);
}
sw.Write("]");

sw.Flush();
ms.Position = 0;

// Send JSON to event hub.
EventData eventData = new EventData(ms);
eventHubClient.Send(eventData);
}

引用:learn.microsoft.com/time-series-insights-send-events

关于c# - 将 JSON 数据路由到 Azure 中的事件中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50352304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com