/// <summary> /// REST响应 JSON反序列化 /// <example> /// 对如下类对象的反序列化: /// public sealed class JsonContent /// { /// public RestStatus StatusCode { get; set; } /// [RestResolverFilter(filterEnum)] /// public IJsonContent Content { get; set; } /// } /// 这里Content是接口,在反序列化时需要具体化类型。而其反序列化类型的查找,通过filterEnum获取 /// </example> /// </summary> /// <typeparam name="TSubContentImp">JSON模型子内容,其以接口类型实现,需要根据类型具体化</typeparam> /// <typeparam name="T">内容主体格式</typeparam> /// <param name="jsonContent"></param> /// <param name="filterEnum"></param> /// <returns></returns> public static T DeserializeObject <T, TSubContentImp>(string jsonContent, JsonPropertyFilterEnum filterEnum) { var dic = new Dictionary <JsonPropertyFilterEnum, Type> { { filterEnum, typeof(TSubContentImp) } }; Dictionary <JsonPropertyFilterEnum, Type> dicPropertyNameType = dic; return(DeserializeObject <T, TSubContentImp>(jsonContent, dicPropertyNameType)); }
/// <summary> /// /// </summary> /// <param name="uniqueKey">过滤器唯一键值</param> public RestResolverFilterAttribute(JsonPropertyFilterEnum uniqueKey) { UniqueKey = uniqueKey; }