WCF问题序列化自定义集合问题!~
各位晚上好!~
最近我在学习WCF,可是我的Entity类老序列化不过去。请大家帮忙给看看。谢谢
Enitty类如下:
[Serializable]
public class S_UserBaseEntity : EntityBase
{
public S_UserBaseEntity()
{
_tableSchema = S_UserBaseTable.Current;
}
#region 属性列表
public long lID
{
get { return Convert.ToInt64(GetData(S_UserBaseTable.C_lID)); }
set { SetData(S_UserBaseTable.C_lID, value); }
}
public string sLoginID
{
get { return Convert.ToString(GetData(S_UserBaseTable.C_sLoginID)); }
set { SetData(S_UserBaseTable.C_sLoginID, value); }
}
#endregion
}
它所调用的Table类如下:
[Serializable]
public class S_UserBaseTable : TableInfo
{
public const string C_lID = "lID";
public const string C_sLoginID = "sLoginID";
public S_UserBaseTable()
{
_tableName ="S_UserBase";
}
protected static S_UserBaseTable _current;
public static S_UserBaseTable Current
{
get
{
if (_current == null)
{
Initial();
}
return _current;
}
}
private static void Initial()
{
_current = new S_UserBaseTable();
_current.Add(C_lID, new ColumnInfo(C_lID, true,DbType.Int64 ));
_current.Add(C_sLoginID, new ColumnInfo(C_sLoginID, false,DbType.String ));
}
}
其中所继承的TableInfo,和EntityBase也都加上了可序列化标志。
经测试,这样序列化的对象可以保存到viewstate中。
WCF部分代码如下:
WCF.Contract中代码如下:
[OperationContract]
S_UserBaseEntity GetUserBaseEntity();
client端调用方法如下:
public S_UserBaseEntity GetUserBaseEntity()
{
return this.Channel.GetUserBaseEntity();//就着出错了
}
调用的时候就是在上面这地方出错了
普通的Entity都能序列化过去。都能调用成功。唯独这么写的Entity却调用不成功。
报错如下:
未处理的“System.ServiceModel.CommunicationException”类型的异常出现在 mscorlib.dll 中。
其他信息: 套接字连接已中止。这可能是由于处理消息时出错或远程主机超过接收超时或者潜在的网络资源问题导致的。本地套接字超时是“00:00:59.0460000”。