SingoloParametroFiltro

SingoloParametroFiltro

早上好,

我有两个结构:

    struct SingoloParametroFiltro
    {
        public Variabile variabile { get; set; }
        public string operatore { get; set; }
        public bool non { get; set; }
        public object valore { get; set; }

        public static SingoloParametroFiltro CreaSingoloParametroFiltro(int idVariabile, string Operatore, bool Non, object Valore)
        {
            SingoloParametroFiltro s = new SingoloParametroFiltro();
            s.variabile = Variabile.CreaVariabileDaId(idVariabile);
            s.operatore = Operatore;
            s.non = Non;
            s.valore = Valore;
            return s;
        }
    }

    struct Filtro
    {
        public List<SingoloParametroFiltro> parametroFiltro { get; set; }
        public string nomeFiltro { get; set; }

        public static Filtro CreaFiltro(List<SingoloParametroFiltro> _parFiltro, string _nome)
        {
            Filtro f = new Filtro();
            f.parametroFiltro = _parFiltro;
            f.nomeFiltro = _nome;
            return f;
        }
    }


以及Variabile的结构:

    struct Variabile
    {
        public int id { get; private set; }
        public string NomeColonna { get;  private set; }
        public string TipoDato { get; private set; }
        public object Val { get; private set; }
        public object Default { get; private set; }
        public int ColonnaAccoppiamento { get; private set; }
        public bool Visibile { get; private set; }
        public bool ChiaveAlbero { get; private set; }
        public int Importanza { get; private set; }
        public bool ChiaveImport { get; private set; }
    }


现在...。我序列化List<SingoloParametroFiltro>并将其保存在数据库中。 json字符串似乎还可以,并且一切正常。
当我尝试将json字符串从DB反序列化为List<SingoloParametroFiltro>时,除SingoloParametroFiltro中的Variabile之外,其他所有方法都很好用。
SingoloParametroFiltro内部的结构Variabile将所有变量设置为null或0 .....

序列化代码:

JavaScriptSerializer jsSer = new JavaScriptSerializer();
string json = jsSer.Serialize(parametri);


参数是List<SingoloParametroFiltro>

反序列化的代码:

JavaScriptSerializer js = new JavaScriptSerializer();
return js.Deserialize<List<SingoloParametroFiltro>>(json);


有人可以帮助我吗?

最佳答案

这是因为结构Variabile的所有设置方法都是private

...
public int id { get; private set; }
public string NomeColonna { get;  private set; }
public string TipoDato { get; private set; }
...


因此,解串器无法为字段分配正确的值。
您可以尝试将其公开:

...
public int id { get; set; }
...

10-07 23:08