AVRO 使用构造函数序列化 ac# 类

发布于 2025-01-19 20:26:07 字数 1105 浏览 0 评论 0 原文

我的目标是能够序列化AC#类。 我目前正在尝试使用 microsoft.hadoop.avro 序列化,但我似乎无法使它起作用,因为我的应用程序抛出了异常'type'type'andime.timal.horse'不是由解析器支持。。您知道该怎么做吗?

program.cs

      AvroSerializerSettings settings = new AvroSerializerSettings();
      settings.Resolver = new AvroPublicMemberContractResolver();
      var result = AvroSerializer.Create<Horse>(settings).WriterSchema.ToString();

horse.cs

namespace Animals
{
    public class Horse
    {
        public string Name { get; private set; }

        public Horse(string name)
        {
            Name = name ?? throw new ArgumentNullException(nameof(name));
        }
    }
}

注意: 我知道这个线程: 但是他没有在他的域类中使用构造函数。对我来说,如果没有构造函数 constructor 是空...

My goal is to be able to avro serialize a c# class.
I'm currently trying to use Microsoft.Hadoop.Avro to serialize but I can't seem to get it to work as my application throws an exception 'Type 'Animals.Horse' is not supported by the resolver.'. Do you have any idea how to do it right?

Program.cs:

      AvroSerializerSettings settings = new AvroSerializerSettings();
      settings.Resolver = new AvroPublicMemberContractResolver();
      var result = AvroSerializer.Create<Horse>(settings).WriterSchema.ToString();

Horse.cs:

namespace Animals
{
    public class Horse
    {
        public string Name { get; private set; }

        public Horse(string name)
        {
            Name = name ?? throw new ArgumentNullException(nameof(name));
        }
    }
}

Notes:
I am aware of this thread:
https://www.thecodebuzz.com/avro-serializationexception-type-is-not-supported-by-the-resolver-microsoft-hadoop-avro/
but he's not using a constructor in his domain class. For me it doesn't throw the exception if there wasn't a constructor or if the constructor was empty...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文