如何检查对象是否为空
这里是我的代码:如何检查对象是否为空
public static class SerializationUtil
{
public static string Serialize(object obj)
{
if (obj == null)
return string.Empty;
StringWriter writer = new StringWriter();
new System.Web.UI.LosFormatter().Serialize(writer, obj);
return writer.ToString();
}
public static object Deserialize(string data)
{
if (data == null)
return null;
return (new System.Web.UI.LosFormatter()).Deserialize(data);
}
}
我遇到的问题是:当我调用序列化方法,如果obj为null,则抛出一个错误。所以我想检查一下obj的值是否为null。我现在放置的代码不起作用,因为当obj值被检查时,它永远不会为null。
解决:
见我的答案
好的,我明白了。我查看了异常的细节,并期望对象类是可序列化的。我使课程可串行化,它的工作
using System;
[Serializable] //the missing piece
public class RegisterFormData
{
public string username { get; set; }
public string pass1 { get; set; }
public string pass2 { get; set; }
public string email { get; set; }
public string firstname { get; set; }
public string lastname { get; set; }
}
你知道,我会在评论中提出建议,然后认为这不可能是因为这个原因吧? – 2010-08-21 05:48:12
你应该更新自己的问题。 – Kangkan 2010-08-21 10:58:46
他可以回答他自己的问题... – 2010-08-21 18:24:10
后我真的不觉得有什么你所描述的是可能的。如果您检查了obj
不仅仅是上面几行,那么它不为空。如果您获得NullReferenceException
,则可能是由于其他其他为空,可能在Serialize
方法本身内。
究竟是在哪里抛出异常?你有异常的堆栈跟踪吗? – 2010-08-21 05:36:55
它在新的System.Web.UI.LosFormatter()。中引发Serialize(writer,obj); – Luke101 2010-08-21 05:38:49
请发布确切的错误信息。 – 2010-08-21 05:41:41