所以,我用下面的组件,它具有以下定义(相当无害)工作:为什么我甚至需要首先序列化?
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's & two public int's
public override string ToString()
{
return FilterText;
}
}
}
在另一个组件,我们有一个用户控件:
public partial class QueryWizard : UserControl
{
private List<QueryDefinition.QueryFilter> TheCurrentFilters = null;
public List<QueryDefinition.QueryFilter> CurrentFilters
{
set { TheCurrentFilters = value; }
get { return TheCurrentFilters; }
}
// other code
}
有趣的代码,但这是我必须与之合作。
不管怎样,如果我去另一个项目(即引用此用户控件),创建一个表单,然后将控件到窗体,我得到这个错误:
“System.Runtime.Serialization.SerializationException :在Assembly ...中键入QueryDefinition + QueryFilter'未标记为可序列化。'
我实际上并没有使用任何序列化代码,所以QueryFilter的List是什么是SerializationException的原因?
我已经使用[Serializable]标签来摆脱这种情况。但最近我们正在重建项目(Visual WebGUI升级),现在我遇到了“无法加载反序列化所需的类型”问题。我决定试着找出为什么我们首先需要序列化标签,而不是解决这个问题。谢谢。
看看堆栈跟踪异常 – Andrey 2010-05-05 16:01:53