WebAPI Modèle Personnalisé de liaison du complexe objet abstrait

C'est une question difficile. J'ai un problème avec la liaison d'un modèle de JSON. Je suis en essayant de résoudre les polymorphes-allié de l'enregistrement fourni avec le type d'enregistrement qui sera résolu (je veux être en mesure d'ajouter de nombreux types d'enregistrement dans le futur). J'ai tenté d'utiliser le l'exemple suivant pour résoudre mon modèle lors de l'appel de l'extrémité cependant, cet exemple ne fonctionne que pour MVC et Web API des applications.

J'ai tenté de l'écrire à l'aide IModelBinder et BindModel(HttpActionContext actionContext, ModelBindingContext bindingContext). Cependant je ne trouve pas l'équivalent de ModelMetadataProviders dans le Système.Web.Espace de noms Http.

D'apprécier l'aide n'importe qui peut donner.

J'ai une Web API 2 application qui a la suite de la structure de l'objet.

public abstract class ResourceRecord
{
    public abstract string Type { get; }
}

public class ARecord : ResourceRecord
{
    public override string Type
    {
        get { return "A"; }
    }

    public string AVal { get; set; }

}

public class BRecord : ResourceRecord
{
    public override string Type
    {
        get { return "B"; }
    }

    public string BVal { get; set; }
}

public class RecordCollection
{
    public string Id { get; set; }

    public string Name { get; set; }

    public List<ResourceRecord> Records { get; }

    public RecordCollection()
    {
        Records = new List<ResourceRecord>();
    }
}

Structure JSON

{
  "Id": "1",
  "Name": "myName",
  "Records": [
    {
      "Type": "A",
      "AValue": "AVal"
    },
    {
      "Type": "B",
      "BValue": "BVal"
    }
  ]
}
Double Possible de l'Api Web de la Liaison de Modèle et Polymorphe de l'Héritage
C'est l'exemple que j'utilise dans ma question. La réponse à cette question est pour la liaison de modèle MVC et j'ai besoin de l'API Web de la liaison de modèle.

OriginalL'auteur garyamorris | 2016-05-17