src/ZKEACMS.SectionWidget/ContentJsonConvert/JsonCreationConverter.cs
(完整代码) 1KB/* http://www.zkea.net/
* Copyright (c) ZKEASOFT. All rights reserved.
* http://www.zkea.net/licenses */
using System;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Reflection;
namespace ZKEACMS.SectionWidget.ContentJsonConvert
{
public abstract class JsonCreationConverter<T> : JsonConverter
{
Type _childType;
public Type ChildType
{
get { return _childType ?? (_childType = typeof(T)); }
}
protected abstract T Create(Type objectType, JObject jObject);
public override bool CanConvert(Type objectType)
{
return objectType.IsAssignableFrom(ChildType);
}
public override object ReadJson(JsonReader reader,
Type objectType,
object existingValue,
JsonSerializer serializer)
{
JObject jObject = JObject.Load(reader);
T target = Create(objectType, jObject);
serializer.Populate(jObject.CreateReader(), target);
return target;
}
public override void WriteJson(JsonWriter writer,
object value,
JsonSerializer serializer)
{
throw new NotImplementedException();
}
}
}
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。