2010-08-21 3 views
0

여기 내 코드는 다음과 같습니다객체가 null의 경우 확인하는 방법

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

예외는 어디에서 던져 질까? 예외의 스택 추적을 가지고 있습니까? –

+0

새로운 System.Web.UI.LosFormatter()에서 throw됩니다. Serialize (writer, obj); – Luke101

+0

정확한 오류 메시지를 게시하십시오. –

답변

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

너도 알다시피, 나는 그 의견에 대해 제안 할 것이고, 그러면 그 가능성 때문에 그럴 수는 없을 것인가? –

+0

질문 자체를 업데이트해야합니다. – Kangkan

+0

그는 그 자신의 질문에 대답 할 수 있습니다 ... –

1

에서 내 게시물을 참조하십시오. obj이 몇 줄 위의 null이 아님을 확인했다면 null이 아닙니다. NullReferenceException을 얻는다면 그 밖의이 null 일 가능성이 높습니다. 이는 Serialize 메소드 자체에서 가능합니다.

관련 문제