#xamarin.forms #soap #c#-2.0
Вопрос:
Я использовал универсальный репозиторий в своем примере проекта в форме Xamrin для получения данных из api. поэтому мой вопрос в том, как я могу сделать следующий репозиторий кода для веб-сервиса soap универсальным. так что, если вы знаете пример или сообщение в блоге, пожалуйста, укажите мне правильное направление
это мой пример кода:
public interface IGenericRepository
{
Task<T> GetAsync<T>(string uri, string authToken = "");
}
и интерфейс побуждения:
public class GenericRepository: IGenericRepository
{
public async Task<T> GetAsync<T>(string uri, string authToken = "")
{
try
{
HttpClient httpClient = CreateHttpClient(uri);
string jsonResult = string.Empty;
var responseMessage = await Policy
.Handle<WebException>(ex =>
{
Debug.WriteLine($"{ex.GetType().Name " : " ex.Message}");
return true;
})
.WaitAndRetryAsync
(
5,
retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt))
)
.ExecuteAsync(async () => await httpClient.GetAsync(uri));
if (responseMessage.IsSuccessStatusCode)
{
jsonResult =
await responseMessage.Content.ReadAsStringAsync().ConfigureAwait(false);
var json = JsonConvert.DeserializeObject<T>(jsonResult);
return json;
}
if (responseMessage.StatusCode == HttpStatusCode.Forbidden ||
responseMessage.StatusCode == HttpStatusCode.Unauthorized)
{
throw new ServiceAuthenticationException(jsonResult);
}
throw new HttpRequestExceptionEx(responseMessage.StatusCode, jsonResult);
}
catch (Exception e)
{
Debug.WriteLine($"{ e.GetType().Name " : " e.Message}");
throw;
}
}
}
Комментарии:
1. не зная ничего о вашем мыльном сервисе, невозможно ответить на этот вопрос. Вообще говоря, я бы сказал, что это будет трудно сделать
2. Я хочу знать, является ли это posibele, и если у вас есть ссылка, которая может помочь, пожалуйста, помогите мне, спасибо
3. Если вы случайно знакомы с ASP.NET, затем смотрите: ASP.NET Ядро: Универсальный шаблон Репозитория . Я понимаю, что вы обсуждаете клиентский код, а не серверный код, но взгляните на код на этой странице. Он построен на основе открытого исходного
Entity Framework Core
кода , так что вы, вероятно, сможете интегрировать его в свое приложение. Возможно, удастся найти кого-нибудь с опытом в этом на каком-нибудь форуме. Я сам им не пользовался, но с него можно начать.