示例#1
0
        /// <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;
 }