1.Подскажите, как можно сериализовать класс, который наследуется от абстрактного класса System.Web.UI.DataSourceView не помеченного атрибутом [Serializable]?
[Serializable]
public class DBObjDataSourceView : DataSourceView
{
IDataSource Owner = null;
public DBObjDataSourceView(IDataSource owner)
: base(owner, owner.GetType().ToString())
{
Owner = owner;
}
protected override IEnumerable ExecuteSelect(DataSourceSelectArguments arguments)
{
ArrayList propertyList = new ArrayList();
propertyList.Add(Owner);
return propertyList;
}
}
А то при попытке работать с экземпляром другого класса через ViewState, использующего DBObjDataSourceView, вылазит ошибка:
"Ошибка сериализации значения. Тип "System.Web.UI.DataSourceView" в сборке "System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" не помечен как сериализуемый."
2.И второй вопрос, верным ли я пошел путем, когда для автоматического биндинга данных своего класса (описывающего бизнес-объект) реализовал в нем IDataSource (специально, чтобы не использовать ObjectDataSource) и иметь больше возможностей при работе с контролом DetailsView?