>>>>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...' >>>>>>>>