>>>>>using System; >>>>>using System.Collections.Generic; >>>>>using System.Linq; >>>>>using System.Text; >>>>>using System.Data.SqlClient; >>>>>using System.Collections; >>>>>using System.Data; >>>>> >>>>>namespace Marois.WorkIT.DataAccess >>>>>{ >>>>> [Serializable] >>>>> public class Address : DataClassBase >>>>> { >>>>> private int _AddressTypeKey = 0; >>>>> public int AddressTypeKey >>>>> { >>>>> get { return _AddressTypeKey; } >>>>> set { _AddressTypeKey = value; } >>>>> } >>>>> >>>>> private string _Street1 = string.Empty; >>>>> public string Street1 >>>>> { >>>>> get { return _Street1; } >>>>> set { _Street1 = value; } >>>>> } >>>>> >>>>> private string _Street2 = string.Empty; >>>>> public string Street2 >>>>> { >>>>> get { return _Street2; } >>>>> set { _Street2 = value; } >>>>> } >>>>> >>>>> private string _City = string.Empty; >>>>> public string City >>>>> { >>>>> get { return _City; } >>>>> set { _City = value; } >>>>> } >>>>> >>>>> private string _State = string.Empty; >>>>> public string State >>>>> { >>>>> get { return _State; } >>>>> set { _State = value; } >>>>> } >>>>> >>>>> private string _PostalCode = string.Empty; >>>>> public string PostalCode >>>>> { >>>>> get { return _PostalCode; } >>>>> set { _PostalCode = value; } >>>>> } >>>>> >>>>> public override void LoadData() >>>>> { >>>>> DataSet ds = AppDataAccess.GetAddresses(this.RecordId); >>>>> >>>>> if (ds != null && ds.Tables.Count > 0) >>>>> { >>>>> this.RecordId = Convert.ToInt32(ds.Tables[0].Rows[0]["AddressKey"]); >>>>> _AddressTypeKey = Convert.ToInt32(ds.Tables[0].Rows[0]["AddressTypeKey"]); >>>>> _Street1 = ds.Tables[0].Rows[0]["Street1"].ToString(); >>>>> _Street2 = ds.Tables[0].Rows[0]["Street2"].ToString(); >>>>> _City = ds.Tables[0].Rows[0]["City"].ToString(); >>>>> _State = ds.Tables[0].Rows[0]["State"].ToString(); >>>>> _PostalCode = ds.Tables[0].Rows[0]["PostalCode"].ToString(); >>>>> >>>>> } >>>>> >>>>> else >>>>> { >>>>> this.DataException = AppDataAccess.DataException; >>>>> } >>>>> } >>>>> >>>>> >>>>> public override void Delete() >>>>> { >>>>> SqlParameter pAddressKey = new SqlParameter("@AddessKey", this.RecordId); >>>>> ArrayList colParams = new ArrayList(); >>>>> colParams.Add(AddressTypeKey); >>>>> >>>>> AppDataAccess.ExecuteNonQuery("wit_DeleteAddress",colParams); >>>>> >>>>> if (AppDataAccess.DataException == null) >>>>> { >>>>> this.RecordId = 0; >>>>> _AddressTypeKey = 0; >>>>> >>>>> } >>>>> else >>>>> { >>>>> this.DataException = AppDataAccess.DataException; >>>>> } >>>>> >>>>> } >>>>> >>>>> public override bool SaveChanges() >>>>> { >>>>> bool RetVal = Validate(); >>>>> >>>>> if (RetVal) >>>>> { >>>>> string ProcName = string.Empty; >>>>> >>>>> SqlParameter pAddressKey = new SqlParameter("@AddressKey", 0); >>>>> >>>>> if (this.RecordId == 0) >>>>> { >>>>> pAddressKey.Direction = ParameterDirection.Output; >>>>> ProcName = "wit_AddAddress"; >>>>> } >>>>> else >>>>> { >>>>> >>>>> pAddressKey.Value = this.RecordId; >>>>> ProcName = "wit_UpdateAddress"; >>>>> } >>>>> >>>>> SqlParameter pAddressTypeKey = new SqlParameter("@AddressTypeKey",_AddressTypeKey); >>>>> SqlParameter pStreet1 = new SqlParameter("@Street1", _Street1); >>>>> SqlParameter pStreet2 = new SqlParameter("@Street2", _Street2); >>>>> SqlParameter pCity = new SqlParameter("@City", _City); >>>>> SqlParameter pState = new SqlParameter("@State", _State); >>>>> SqlParameter pPostalCode = new SqlParameter("@PostalCode", _PostalCode); >>>>> >>>>> ArrayList colParams = new ArrayList(); >>>>> colParams.Add(pAddressKey); >>>>> colParams.Add(pAddressTypeKey); >>>>> colParams.Add(pStreet1); >>>>> colParams.Add(pStreet2); >>>>> colParams.Add(pCity); >>>>> colParams.Add(pState); >>>>> colParams.Add(pPostalCode); >>>>> >>>>> AppDataAccess.ExecuteNonQuery(ProcName, colParams); >>>>> >>>>> if (AppDataAccess.DataException == null) >>>>> { >>>>> >>>>> if (pAddressKey.Direction == ParameterDirection.Output) >>>>> { >>>>> this.RecordId = Convert.ToInt32(pAddressKey.Value); >>>>> } >>>>> } >>>>> else >>>>> { >>>>> this.DataException = AppDataAccess.DataException; >>>>> } >>>>> } >>>>> >>>>> return RetVal; >>>>> } >>>>> >>>>> public override bool Validate() >>>>> { >>>>> bool bValid = true; >>>>> >>>>> if (_AddressTypeKey == 0) >>>>> { >>>>> bValid = false; >>>>> base.DataException = new DataValidationException("Address can not be empty"); >>>>> } >>>>> return bValid; >>>>> } >>>>> } >>>>>} >>>>>>>>>>
'System.Runtime.Serialization.SerializationException: Type 'Marois.WorkIT.DataAccess.Address' in Assembly 'DataAccess, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' is not marked as serializable.
Marking it as serializable should get rid of that error but if any of the properties of the Address class were not serializable you may get a different error. Can you post the code for the class?>>>>>>>>>Failed to create component 'crlAddresses'. The error message follows: >>>>>>>>> >>>>>>>>> 'System.Runtime.Serialization.SerializationException: Type 'Marois.WorkIT.DataAccess.Address' in Assembly 'DataAccess, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' is not marked as serializable. >>>>>>>>> >>>>>>>>> at System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers(RuntimeType type) >>>>>>>>> >>>>>>>>> at System.Runtime.Serialization.FormatterServices.GetSerializableMembers(Type type, StreamingContext context) >>>>>>>>> >>>>>>>>> at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo() >>>>>>>>> >>>>>>>>> at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Type objectType, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter) >>>>>>>>> >>>>>>>>> at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.Serialize(Type objectType, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter) >>>>>>>>> >>>>>>>>> at System.Runtime.Serialization.Formatters.Bina...' >>>>>>>>>