- Регистрация
- 03.05.2016
- Сообщения
- 773
- Благодарностей
- 517
- Баллы
- 93
Начал изучать абстракции и зашел в тупик, не понимаю, как реализовать.
Есть задача написать Proxy Server для работы с разными сервисами.
Нужно написать абстрактное решение, которое будет парсить данные Json от разных прокси сервисов.
У меня не получается подключить абстракцию, которая будет парсить Json данные под нужные сервисы.
Есть абстрактный метод, который принимает данные string Json, парсит их и отдает список List<IProxyJson>.
Создал интерфейс с базовыми данными, которые хочу получить:
Реализую данный интерфейс для первого сервиса и дописываю дополнительные данные, которые хочу получить конкретно от этого сервиса
Теперь вопрос, как мне его завести в абстрактном методе
//КОД НЕРАБОЧИЙ! как сделать его рабочим?
Ошибка CS0029 Не удается неявно преобразовать тип "System.Collections.Generic.List<ProxyService.ProxyJson.Proxy6Json>" в "System.Collections.Generic.List<ProxyService.ProxyJson.IProxyJson>".
Есть задача написать Proxy Server для работы с разными сервисами.
Нужно написать абстрактное решение, которое будет парсить данные Json от разных прокси сервисов.
У меня не получается подключить абстракцию, которая будет парсить Json данные под нужные сервисы.
Есть абстрактный метод, который принимает данные string Json, парсит их и отдает список List<IProxyJson>.
public abstract List<IProxyJson> ParseJson(string proxyJson);
Создал интерфейс с базовыми данными, которые хочу получить:
C#:
public interface IProxyJson
{
string Host { get; set; }
string Port { get; set; }
string User { get; set; }
string Pass { get; set; }
string Country { get; set; }
}
C#:
public class Proxy6Json : IProxyJson
{
public string Host { get; set; }
public string Port { get; set; }
public string User { get; set; }
public string Pass { get; set; }
public string Country { get; set; }
public string Id { get; set; }
public string Date_end { get; set; }
public string Unixtime_end { get; set; }
public string Descr { get; set; }
public string Active { get; set; }
}
public abstract List<IProxyJson> ParseJson(string proxyJson);
//КОД НЕРАБОЧИЙ! как сделать его рабочим?
C#:
public override List<IProxyJson> ParseJson(string proxyJson)
{
var objProxy = JObject.Parse(proxyJson);
IList<JToken> results = objProxy.SelectTokens("list").Children().Children().ToList();
var proxyList = new List<Proxy6Json>();
foreach (var result in results)
{
var jsonProxy6 = result.ToObject<Proxy6Json>();
proxyList.Add(jsonProxy6);
}
return proxyList;
}