Refactoring + Supporting DataContractAttribute and JsonIgnoreAttribute