为了账号安全,请及时绑定邮箱和手机立即绑定

如何让protubuf-net在反序列化时不考虑默认数组值

如何让protubuf-net在反序列化时不考虑默认数组值

C#
qq_笑_17 2021-09-19 16:17:29
尝试这个:static class Program{    /// <summary>    /// The main entry point for the application.    /// </summary>    [STAThread]    static void Main()    {        Application.EnableVisualStyles();        Application.SetCompatibleTextRenderingDefault(false);        var f = new Form1();        f.Mode = false;        Application.Run(f);        bool playerMode = f.Mode;    }}和:public partial class Form1 : Form{    public Form1()    {        InitializeComponent();    }    public bool Mode = false;    private void button1_Click(object sender, EventArgs e)    {        this.Mode = true;        this.Close();    }    private void button2_Click(object sender, EventArgs e)    {        this.Mode = false;        this.Close();    }}这对我bool playerMode根据我单击的按钮进行设置很好用。
查看完整描述

1 回答

?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

这里的问题是 protobuf-net 通过附加数据来反序列化列表(等)数据。


解决方案是将列表初始化从 ctor 移动到具有设置属性 SkipConstructor=true 的构造函数。


[ProtoContract(SkipConstructor=true)]

public class Data

{

    [ProtoMember(1)]

    public bool[] Flags;


    public Data()

    {

        Falgs = new bool[3] { true, true, true }

    }

}


查看完整回答
反对 回复 2021-09-19
  • 1 回答
  • 0 关注
  • 172 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信