使用 C# 读取以 JSON 格式存储在 Azure 事件中心架构注册表中的事件架构

问题描述 投票:0回答:2

我有一个以 JSON 格式存储在 Azure 事件中心架构注册表中的事件架构。 我需要在 C# 代码中读取该架构,而不需要在代码中对架构进行硬编码。 需要将架构读入代码中的 JSON 对象。 我正在寻找一些示例代码来开始。我在手册中没有找到任何内容 或其他地方。

请帮忙。

c# azure apache-kafka azure-eventhub azure-eventhub-client
2个回答
0
投票

此场景记录在Azure.Data.SchemaRegistry概述中的

检索模式
示例中:

var client = new SchemaRegistryClient(
    "your-hostname.servicebus.windows.net", 
    new DefaultAzureCredential());

SchemaRegistrySchema schema = client.GetSchema("your-id");
string schemaContent = schema.Definition;

无论模式的格式如何(包括 JSON),这都有效。更多示例和讨论可在架构注册表READMEsamples中找到。


-1
投票

以下是如何实现此目标的示例:

using System;
using Azure;
using Azure.Messaging.EventHubs;
using Azure.Messaging.EventHubs.Producer;
using Azure.Messaging.EventHubs.Consumer;
using Azure.Messaging.EventHubs.SchemaRegistry;

class Program
{
    static async Task Main(string[] args)
    {
        string connectionString = "YOUR_EVENT_HUBS_CONNECTION_STRING";
        string eventHubName = "YOUR_EVENT_HUB_NAME";
        string schemaGroup = "YOUR_SCHEMA_GROUP_NAME";
        string schemaName = "YOUR_SCHEMA_NAME";

        var client = new SchemaRegistryClient(connectionString);
        
        try
        {
            using (var schema = await client.GetSchemaAsync(schemaGroup, schemaName))
            {
                string schemaContent = schema.Content;
                Console.WriteLine(schemaContent); // Output the schema content (for demonstration purposes)

                // Parse the schema content into a JSON object
                dynamic schemaObject = Newtonsoft.Json.JsonConvert.DeserializeObject(schemaContent);

                // Use the schema object in your code as needed
                // (schemaObject will contain the parsed JSON schema)
            }
        }
        catch (RequestFailedException ex)
        {
            Console.WriteLine($"An error occurred: {ex.Message}");
        }
    }
}

请确保已安装必要的 NuGet 包,例如 Azure.Messaging.EventHubs、Azure.Messaging.EventHubs.Producer、Azure.Messaging.EventHubs.Consumer 和 Azure.Messaging.EventHubs.SchemaRegistry,以便此代码正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.