2010-08-21 212 views
0

這裏是我的代碼:如何檢查對象是否爲空

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。

解決:

見我的答案

+3

究竟是在哪裏拋出異常?你有異常的堆棧跟蹤嗎? – 2010-08-21 05:36:55

+0

它在新的System.Web.UI.LosFormatter()。中引發Serialize(writer,obj); – Luke101 2010-08-21 05:38:49

+0

請發佈確切的錯誤信息。 – 2010-08-21 05:41:41

回答

2

好的,我明白了。我查看了異常的細節,並期望對象類是可序列化的。我使課程可串行化,它的工作

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; } 
} 
+0

你知道,我會在評論中提出建議,然後認爲這不可能是因爲這個原因吧? – 2010-08-21 05:48:12

+0

你應該更新自己的問題。 – Kangkan 2010-08-21 10:58:46

+0

他可以回答他自己的問題... – 2010-08-21 18:24:10

1

後我真的不覺得有什麼你所描述的是可能的。如果您檢查了obj不僅僅是上面幾行,那麼它不爲空。如果您獲得NullReferenceException,則可能是由於其他其他爲空,可能在Serialize方法本身內。