Ошибка - не помечена как сериализуемая
Ошибка яЯ получаю это:
Type 'OrgPermission' in Assembly 'App_Code.ptjvczom, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' is not marked as serializable.
вот мой код:
У меня есть gridview, который использует следующий источник данных:
Я устанавливаю переменную сеанса в моей загрузке страницы следующим образом:
User cUser = new User(userid);
//make sure the user is an Admin
List orgs = new List();
foreach(OrgPermission org in cUser.orgs)
{
if (org.type=='admin')
{
orgs.Add(org);
}
}
Session["UserOrgs"] = orgs;
Мой пользовательский класс выглядит так:
public class OrgPermission
{
public string Org { get; set; }
public List type { get; set; }
public OrgPermission()
{ }
}
public class cUser
{
public string userid { get; set; }
public List orgs { get; set; }
public clsUser(string username)
{
//i set everything here
}
}
Я могу'не понимаю, почему этоЯ могу использовать его, не делая его сериализуемым?
Я попытался отладить, и переменная сеанса установилась очень хорошо, затем она переходит в GetOrgList и возвращает правильные результаты, но страница не загружается, и я получаю ошибку выше.
Вот фрагмент моей функции GetOrgList:
public DataTable GetOrgList(List orgCodes, string active)
{
string orgList = null;
//code to set OrgList using the parameter is here.
DataSet ds = new DataSet();
SqlConnection conn = new SqlConnection(cCon.getConn());
SqlCommand cmd = new SqlCommand("sp_GetOrgList", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@orgList", orgList));
cmd.Parameters.Add(new SqlParameter("@active", active));
conn.Open();
SqlDataAdapter sqlDA = new SqlDataAdapter();
sqlDA.SelectCommand = cmd;
sqlDA.Fill(ds);
conn.Close();
return ds.Tables[0];
}