C# 如何使用/Date()序列化包含DateTime的复杂对象
我想将这样的对象序列化为JSON: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 =
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;
}