Итак, я работаю со следующей сборкой, которая имеет следующее определение (довольно безвредное):
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;
}
}
}
В другой сборке у нас есть 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
}
Интересный код, но это то, с чем я должен работать.
Во всяком случае, если я иду в другой проект (который ссылается на этот UserControl), создаю форму, а затем перетаскиваю элемент управления на форму, я получаю эту ошибку:
'System.Runtime.Serialization.SerializationException: тип QueryDefinition + QueryFilter' в сборке ... не помечен как сериализуемый. '
На самом деле я не использую какой-либо код сериализации, так что из этого списка QueryFilter является причиной SerializationException?
Я использовал тег [Serializable], чтобы избавиться от этого. Но недавно мы перестраивали проекты (обновление Visual WebGUI), и теперь я столкнулся с проблемой «невозможно загрузить тип, необходимый для десериализации». Вместо того чтобы разобраться в этой проблеме, я решил попытаться выяснить, зачем нам нужны теги сериализации! Спасибо.