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;
Я спрашиваю, знает ли кто -нибудь, можно ли передать в веб -API конкретный класс, который наследует от абстрактного класса. < /p> Например: < /p> [code]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; [/code] Когда действие webapi называется объектом null