JavaScriptConverter personalizado para DateTime?

Eu tenho um objeto, ele tem uma propriedade DateTime ... Eu quero passar esse objeto de um manipulador .ashx de volta para uma página da Web via AJAX / JSON ... Eu não quero usar controles de terceiros ...

quando eu faço isso:

  new JavaScriptSerializer().Serialize(DateTime.Now);

Eu entendi isso:

  "\/Date(1251385232334)\/"

mas eu quero "8/26/2009" (nevermind localização ... meu aplicativo é muito localizado, por isso minhas suposições de formatação de data não estão em debate nesta questão). Se eu fizer / registrar um conversor personalizado

public class DateTimeConverter : JavaScriptConverter
{
    public override IEnumerable<Type> SupportedTypes
    {
        get { return new List<Type>() { typeof(DateTime), typeof(DateTime?) }; }
    }

    public override IDictionary<string, object> Serialize(object obj, JavaScriptSerializer serializer)
    {
        Dictionary<string, object> result = new Dictionary<string, object>();
        if (obj == null) return result;
        result["DateTime"] = ((DateTime)obj).ToShortDateString();
        return result;
    }

    public override object Deserialize(IDictionary<string, object> dictionary, Type type, JavaScriptSerializer serializer)
    {
        if (dictionary.ContainsKey("DateTime"))
            return new DateTime(long.Parse(dictionary["DateTime"].ToString()), DateTimeKind.Unspecified);
        return null;
    }
}

então eu recebo este resultado (já que o valor de retorno do método serialize customizado é um dicionário):

{"DateTime":"8/27/2009"}

então agora no meu Javascript, em vez de fazer

somePerson.Birthday

eu tenho que fazer

somePerson.Birthday.DateTime 

  or

somePerson.Birthday["DateTime"]

Como posso fazer o conversor personalizado retornar uma seqüência direta para que eu possa ter JavaScript limpo?

questionAnswers(10)

yourAnswerToTheQuestion