Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用/Date()序列化包含DateTime的复杂对象_C#_Json_Date_Serialization_Restsharp - Fatal编程技术网

C# 如何使用/Date()序列化包含DateTime的复杂对象

C# 如何使用/Date()序列化包含DateTime的复杂对象,c#,json,date,serialization,restsharp,C#,Json,Date,Serialization,Restsharp,我想将这样的对象序列化为JSON: ConcreteClassA classA = GetContreteClassA(); var request = Helper.GetRestRequest("Insert", Method.POST); request.JsonSerializer = new ConcreteClasseAJsonSerializer(); request.AddJsonBody(new { abClass = classA, useBasicProcess =

我想将这样的对象序列化为JSON:

 ConcreteClassA classA = GetContreteClassA();
 var request = Helper.GetRestRequest("Insert", Method.POST);
 request.JsonSerializer = new ConcreteClasseAJsonSerializer();
 request.AddJsonBody(new { abClass = classA, useBasicProcess = true });
 IRestResponse<AbstractClass> response = _restClient.Execute<AbstractClass>(request);
 if (response.StatusCode != System.Net.HttpStatusCode.OK)
     Helper.ThrowExeption(response);
以下是
ConcreteClassAJsonSerializer
的序列化方法的代码:

public string Serialize(object obj)
{
    var binder = new ConcreteClassATypeNameSerializationBinder();
    string jsonString = JsonConvert.SerializeObject(obj, Formatting.None, new JsonSerializerSettings
    {
        TypeNameHandling = TypeNameHandling.Objects,
        SerializationBinder = binder,
        DateFormatHandling = DateFormatHandling.IsoDateFormat,
    });

    jsonString = jsonString.Replace("\"$type\":\"\",", string.Empty);
    jsonString = jsonString.Replace("$type", "__type");
    return jsonString;
    }
}
以及活页夹的BindToName方法的代码:

public void BindToName(Type serializedType, out string assemblyName, out string typeName)
{
    if (serializedType == typeof(ConcreteClassA) || serializedType == typeof(ConcreteClassB) || serializedType == typeof(ConcreteClassC))
    {
        assemblyName = null;
        typeName = serializedType.Name + ":" + TypeFormat;
        return;
    }
    assemblyName = null;
    typeName = null;
}
我必须使用这个自定义序列化程序和绑定器来指定抽象类的具体类
abClass
。 但是如何在序列化过程中添加缺少的
\/Date(

public void BindToName(Type serializedType, out string assemblyName, out string typeName)
{
    if (serializedType == typeof(ConcreteClassA) || serializedType == typeof(ConcreteClassB) || serializedType == typeof(ConcreteClassC))
    {
        assemblyName = null;
        typeName = serializedType.Name + ":" + TypeFormat;
        return;
    }
    assemblyName = null;
    typeName = null;
}