1

null 許容の TimeSpan プロパティを逆シリアル化しようとすると、Argumentnull 例外が発生します。

public class SimpleClass
{
    private TimeSpan? m_WorkStartHr;

    public TimeSpan? WorkStartHr
    {
        get { return m_WorkStartHr; }
        set { m_WorkStartHr = value; }
    }
}

public class Program
{
    static void Main(string[] args)
    {
        JavaScriptSerializer serializer = new JavaScriptSerializer();

        TimeSpan? dt = new TimeSpan(288000000000);
        SimpleClass instance = new SimpleClass();
        instance.WorkStartHr = dt;

        string jsonStr = serializer.Serialize(instance);

        //This code throws the exception
        SimpleClass newInstance = serializer.Deserialize<SimpleClass>(jsonStr);
    }
}

注: WorkStartHr を null 非許容にすると、正常に動作します。

4

1 に答える 1

0

残念ながら、これは JavaScriptSerializer の既知の問題です。

ここに回避策がありますが、理想的ではありません。

于 2013-03-07T12:47:17.047 に答える