C#自定义结构的强制转换

C#自定义结构的强制转换

我在ASP.NET页面上定义了一个自定义结构,将该结构类型的对象存放于会话(SESSION),结果到读取SESSION的时候,强制转换回自定义结构类型失败,显示的错误也莫名其妙:
当一个数字执行强制转换时 值必须是一个小于无限大的数字


页面后台代码:
struct StruMyInfo
{
public int UserId;
public string Name;
}


StruMyInfo MyInfo
{
get
{
StruMyInfo myinfo;
string sessionname = "MyInfo";
if (Session[sessionname] != null)
{
myinfo = (StruMyInfo) Session[sessionname]; //失败
……
}
else
{
……
Session[sessionname] = myinfo
}
}
}

到网上搜索,查不出一个屁来。网络的作用其实有时候相当有限。
后来想了一下,大概是StruMyInfo为自定义的结构,而非通用,并且定义在一个页面上。由于网页的生存期非可持续,提交一次执行一次,造成自定义结构不可辨识。假如是WINFORM程序应该就没问题。


于是将StruMyInfo放到独立的基类里定义,就是一个独立的DLL或者位于其他地方的一个公用类,问题解决


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值