public override Type GetConcreteType(Type parentType) { if (JsonClassInfo.IsDeserializedByAssigningFromList(parentType)) { return(typeof(List <TDeclaredProperty>)); } else if (JsonClassInfo.IsSetInterface(parentType)) { return(typeof(HashSet <TDeclaredProperty>)); } return(parentType); }