gpt4 book ai didi

c# - 可以将 C# 模型序列化为 AVRO JSON 模式吗?

转载 作者:行者123 更新时间:2023-11-30 15:17:57 25 4
gpt4 key购买 nike

我在这里找到了一些代码 https://learn.microsoft.com/en-us/azure/hdinsight/hdinsight-dotnet-avro-serialization#Scenario2与我需要的相反:

//Define the schema in JSON
const string Schema = @"{
""type"":""record"",
""name"":""Microsoft.Hadoop.Avro.Specifications.SensorData"",
""fields"":
[
{
""name"":""Location"",
""type"":
{
""type"":""record"",
""name"":""Microsoft.Hadoop.Avro.Specifications.Location"",
""fields"":
[
{ ""name"":""Floor"", ""type"":""int"" },
{ ""name"":""Room"", ""type"":""int"" }
]
}
},
{ ""name"":""Value"", ""type"":""bytes"" }
]
}";

//Create a generic serializer based on the schema
var serializer = AvroSerializer.CreateGeneric(Schema);

我想采用我创建的模型:

[DataContract(Name = "Demo", Namespace = "pubsub.demo")]
public class Demo
{
[DataMember(Name = "value")]
public long Value { get; set; }
}

...并将此 C# 模型序列化为 JSON AVRO 架构字符串。

原因:

我只想维护 C# 模型并自动将这些模型注册到 Confluent 的架构注册表。要向模式注册表注册,模式需要采用 JSON AVRO 格式(就像上面的 Schema 一样)。

我不希望同时定义 JSON 和 C# 模型。如果我必须维护一个,我宁愿有一个 C# 模型。

最佳答案

我在 Microsoft.Hadoop.Avro.AvroSerializer 中找到了我要找的东西。

AvroSerializer.Create<Demo>().WriterSchema.ToString();
// > {"type":"record","name":"pubsub.demo.Demo","fields"[{"name":"value","type":"long"}]}

关于c# - 可以将 C# 模型序列化为 AVRO JSON 模式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45338832/

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