【发布时间】:2019-03-23 04:46:57
【问题描述】:
我已经为此奋斗了一段时间。我有一个 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";
}
}
【问题讨论】:
-
问题是什么?
-
你考虑过
dynamic吗?不过,我不能 100% 确定这是否是它的用例。 -
使用
Dictionary<string, object>有什么问题?
标签: c# interface dependencies