title: ResolvePropertyName with a Type during deserializasion in JSON.Net
body: <p>I need help to customize deserialization in runtime with json.net.</p>
  
  <p>In my case i know an accepting json model property names in run time only so I can't use the standart <code>JsonPropertyAttribute</code> to set the name.</p>
  
  <p>The method <a href="https://www.newtonsoft.com/json/help/html/M_Newtonsoft_Json_Serialization_DefaultContractResolver_ResolvePropertyName.htm" rel="nofollow noreferrer">DefaultContractResolver.ResolvePropertyName</a> looks good for overriding for me but it have no information about a target type of a model. And that is the main problem for me now.</p>
  
  <p>In my solution I have the custom attributes with a key names. I set them on the "dynamic" properties to map them to known values in runtime.</p>
  
  <p>Model Example:</p>
  
  <pre><code>public class MyDeserializationModel
  {
      public string known_property { get; set; }
  
      [MyAttribute(Constants.CustomFields.DynamicProperty1)]
      public string DynamicProperty1 { get; set; }
  
      [MyAttribute(Constants.CustomFields.DynamicProperty2)]
      public string DynamicProperty2 { get; set; }
  }
  </code></pre>
  
  <p>So it woud be ideal for me to get information about a target deserialization type to get the attribute value to generate the name to map.</p>
  
  <p>I have founded some soultions with creating a dictionary with <code>KeyValuePair:TypePropertyName|MyPropertyName</code> on initialize inside my <code>CustomFieldContractResolver</code> but it looks annoying to customize <code>SerializationSettings</code> on every request to set <code>ContractResolver</code> for awaiting response types. And after all I must to generate unique property names for a several models that may be inside a singe json response.</p>
  
  <p>Can I override property mapping on deserialization with getting an information about the target type and the json property name somehow?</p>