Например: < /p>
Код: Выделить всё
public abstract class A
{
A();
}
public class B : A
{
}
[POST("api/Request/{a}")]
public class Request(A a)
{
}
< /code>
В настоящее время я оглядывался вокруг, и большинство решений говорят, что использование типенамелянга будет работать. < /p>
JsonMediaTypeFormatter jsonFormatter = new JsonMediaTypeFormatter();
jsonFormatter.SerializerSettings.TypeNameHandling = TypeNameHandling.Auto;
< /code>
Однако это не этот случай. Также моя модель передается из приложения консоли в WebAPI. Я прочитал, что я смогу десериализировать объект JSON, и после попытки этого несколько раз я решил, что это не сработает. В настоящее время я наследуюсь от абстрактного класса с 3 моделями, но в будущем может расширить это. Как вы можете отметить, что добавление пользовательских модельных связующих может потребовать нескольких связующих, если нет способа сделать одну связующую общую для всех типов абстрактного класса.item = B();
//serialize and post to web api
MediaTypeFormatter formatter;
JsonMediaTypeFormatter jsonFormatter = new JsonMediaTypeFormatter();
jsonFormatter.SerializerSettings.TypeNameHandling = TypeNameHandling.Auto;
formatter = jsonFormatter;
_content = new ObjectContent(item, formatter);
var response = _client.PostAsync("api/Request", _content).Result;
Подробнее здесь: https://stackoverflow.com/questions/172 ... nheritance