Я работаю над REST API, классы которого разделяют большую часть их поведения, например, простой GET PUT POST DELETE.
Существует множество классов, поэтому я решил создать пустые интерфейсы и универсальные методы с ограничениями для управления всеми его функциями.
Пример того, как это выглядит:
Интерфейс
public interface IGetByOwner
{
}
Класс
public class Customer : IGetByOwner
{
public int OwnerID {get;set;}
}
Помощник
public class LTHttpClient
{
public static async Task<HttpResponseMessage> GetByOwner<T>(int ownerId)
where T : IGetByOwner
{
var uri = $"{LTContext.apiRoot}/{typeof(T).Name}?ownerId={ownerId}";
return await SendRequest(new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new System.Uri(uri)
});
}
}
HttpGET
var response = await LTHttpClient.GetByOwner<Customer>(Owner.Id);
Это работает, как ожидалось.Проблема заключается в других методах Http.
POST Http
var response = await LTHttpClient.GetByOwner<Customer>(Owner.Id);
При этом выдается сообщение об исключении:
System.MissingMethodException: 'Method not found:
'System.Threading.Tasks.Task`1<System.Net.Http.HttpResponseMessage>
LeafyTracker_PCL.LTHttpClient.Post(!!0)'.'
Этот код (все транзакции) выполняется наPCL .NET Standard 2.0, и методы в то же время вызываются для проекта WinForm
Что я делаю не так?
ОБНОВЛЕНИЕ 01/06/2018
Кажется, проблема где-то в старой ссылке на библиотеку.
Однако, я уже очищаю решение, удалите binпапку и перестройте все, и исключение все еще выбрасывается.Любой совет?