我有一个以 JSON 格式存储在 Azure 事件中心架构注册表中的事件架构。 我需要在 C# 代码中读取该架构,而不需要在代码中对架构进行硬编码。 需要将架构读入代码中的 JSON 对象。 我正在寻找一些示例代码来开始。我在手册中没有找到任何内容 或其他地方。
请帮忙。
此场景记录在Azure.Data.SchemaRegistry
概述中的
检索模式示例中:
var client = new SchemaRegistryClient(
"your-hostname.servicebus.windows.net",
new DefaultAzureCredential());
SchemaRegistrySchema schema = client.GetSchema("your-id");
string schemaContent = schema.Definition;
以下是如何实现此目标的示例:
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,以便此代码正常工作。