Я боролся с этим некоторое время.У меня есть API для извлечения источников данных в формате JSON:
Источники данных:
[
{
"name": "Datasource 1",
"tags": "Ds1",
"product": 1,
"status": 1,
"Type": 2,
"datasource": {
"testurl1" : "",
"testurl2: : ""
}
},
{
"name": "Datasource 2",
"tags": "Ds2",
"product": 2,
"status": 1,
"Type": 2,
"datasource": {
"string1" : "",
"string2: : ""
}
}
]
Источники данных имеют одинаковые внешние свойства.Однако свойство источника данных будет отличаться.Свойство источника данных будет состоять из его собственного набора свойств, которые отличаются от источника данных к источнику данных.
Я создал интерфейс, который хочу использовать в разных проектах:
public Interface IGeneral
{
void SetTestData(TestDataModel testData);
}
, новы видите, что TestDataModel тип является конкретным типом.Я пошел по пути, пытаясь создать шаблон стратегии и создав класс BaseDatasource со стандартным свойством источника данных, но я не уверен в том, как лучше двигаться вперед.
По сути, я хочу получить источник данных,свяжите его с необходимой моделью POCO, создайте экземпляр класса, реализующего интерфейс IGeneral, а затем вызовите метод SetTestData этого класса и передайте объект источника данных, не являясь конкретным типом.А внутри метода SetTestData у меня был бы код, подобный следующему:
Пример 1:
public class MyClass1 : IGeneral
{
public void SetTestData(TestDataModel testData)
{
testData.product = 1;
testData.datasource.testurl1 = "sasasas";
}
}
Пример 2:
public class MyClass2 : IGeneral
{
public void SetTestData(TestDataModel testData)
{
testData.product = 2;
testData.datasource.string1 = "dsds";
}
}