我在制作客户端-服务器应用程序时遇到问题。我正在使用实体框架(EF),我需要序列化一个对象以通过包含 List 属性的套接字发送它。我将XMLSerialization用于序列化部分。
我的问题是:当我尝试序列化一个新的调查对象并且选项列表为空时,我可以序列化对象调查。但是,当我将 OPTION 对象添加到 SURVEY.OPTIONS 列表时,我无法序列化该对象。
EF 从实体关系图自动生成的类之一是:
public partial class SURVEY
{
public SURVEY()
{
this.OPCIONs = new List<OPTION>();
}
public int id_survey { get; set; }
public System.DateTime initial_date { get; set; }
public System.DateTime end_date { get; set; }
public virtual List<OPTION> OPTIONs { get; set; }
}
我正在使用此代码从数据库中获取调查:
DateTime actualDate = new DateTime().Today;
private static ComedorCaniaDBContext context = new ComedorCaniaDBContext();
Survey survey = context.SURVEYs.Create()
survey = (SURVEY)context.SURVEYs
.Include("Options")
.Where(e => e.initial_date < actualDate && e.end_date > actualDate)
.FirstOrDefault();
我正在使用此代码进行序列化:
public static Byte[] ObjectToByteArray<T>(T obj)
{
try
{
using (MemoryStream ms = new MemoryStream())
{
XmlSerializer xmlS = new XmlSerializer(typeof(T));
xmlS.Serialize(ms, obj);
return ms.ToArray();
}
}
catch
{
return null;
}
}
我会感谢你的帮助。谢谢。