Why do I even need to serialize first?

So, I am working with the following assembly, which has the following specific (rather harmless):

public class QueryDefinition
{
    private List<QueryFilter> TheCurrentFilters = null;

    public List<QueryFilter> CurrentFilters
    {
        set { TheCurrentFilters = value; }
        get { return TheCurrentFilters; }
    }

    // other code

    public class QueryFilter
    {
        // member variables are: seven public string & two public int's

        public override string ToString()
        {
            return FilterText;
        }
    }
}

Inside another assembly, we have a UserControl:

public partial class QueryWizard : UserControl
{
    private List<QueryDefinition.QueryFilter> TheCurrentFilters = null;

    public List<QueryDefinition.QueryFilter> CurrentFilters
    {
        set { TheCurrentFilters = value; }
        get { return TheCurrentFilters; }
    }

    // other code
}

Interesting code, but I have to work with this.

Anyway, if I go to another project (which refers to this UserControl), create a form and then delete the control on the form, I get this error:

'System.Runtime.Serialization.SerializationException: Type QueryDefinition + QueryFilter' in Assembly ... is not marked as serializable. ''

I'm not actually using Serialization code, so is QueryFilter causing a SerializationException from this list?

[Serializable], . ( Visual WebGUI), " , ". , , , Serialization ! .

+3
2

, usercontrols CurrentFilters .

DesignerSerializationVisibility: http://msdn.microsoft.com/en-us/library/system.componentmodel.designerserializationvisibility.aspx

CurrentFilters, ( , , winforms)

+2

CurrentFilters BinaryFormatter .resx. , . -, [AssemblyVersion] , QueryFilter. " ", .

, CurrentFilters . , . Load. Control.DesignTime, .

, , :

 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
 public List<QueryFilter> CurrentFilters
 {
 }
+2

Source: https://habr.com/ru/post/1744189/


All Articles