Я отправляю объект в метод WebApi. Я использую PostAsJsonAsync
для этого.Объект null в методе WebApi после PostAsJsonAsync
public async Task<HttpResponseMessage> PostAsync(string token, ServiceCall call)
{
var client = new HttpClient();
client.SetBearerToken(token);
var response = await client.PostAsJsonAsync(Uri + "id/nestedcall", call);
return response;
}
Объект call
, что я передаю не равно нулю, когда я его.
[HttpPost]
[Route("id/nestedcall")]
public async Task<IHttpActionResult> NestedCall([FromBody]ServiceCall call)
{
// call is null here
}
Однако это недействительно в моем методе API. Я не могу понять, почему, поскольку все примеры, которые я использовал, используют этот формат.
Почему объект вызова не подхвачен веб-api?
Редактировать
Вот ServiceCall
объект. Он находится в отдельной библиотеке классов, и ссылка включена как в веб-приложение, так и в API.
public class ServiceCall
{
public ServiceCall(Service service, string grantType)
{
ClientId = service.Id;
ClientSecret = service.Secret;
Uri = service.Uri;
Scope = service.Scope;
GrantType = grantType;
}
public ServiceCall(string clientid, string clientsecret, string uri, string scope, string grantType)
{
ClientId = clientid;
ClientSecret = clientsecret;
Uri = uri;
Scope = scope;
GrantType = grantType;
}
public string ClientId { get; set; }
public string ClientSecret { get; set; }
public string Uri { get; set; }
public string Scope { get; set; }
public string GrantType { get; set; }
}
Можете ли вы вставить сообщение об исключении. Однако кажется, что ваши привязки к образцам не работают – Arsene
Также запустите его в режиме отладки и введите код, который вы узнаете больше о данных, которые вы отправляете. – Arsene
Он не получает сообщение об исключении, просто получает нуль, случилось со мной несколько раз, и это может иметь разные причины. Поскольку вы говорите, что одна и та же сигнатура методов работает в других случаях, я бы спросил вас, если вы отправляете и получаете точно тип sams, или просто классы с тем же именем, но в разных пространствах имен. Если есть второй вариант, проверьте, есть ли у вас TypeNameHandling для автоматического или для всех, я думаю, в Global config, если я хорошо помню. – meJustAndrew