让我解释一下我的模型,我将要做什么,以及我想做什么,并就如何实施它发表意见。
所以我有一个名为TelemetryStation的类,它有一个名为Sensor的另一个类的集合。那么代码可能会更清楚:
public class TelemetryStation
{
IList<Sensor> Sensors { get; set; }
}
我打算在其中添加一个名为TelemetryStationType的属性,以便我们可以向TelemetryStation添加标签,确定它的类型。即WeatherStation,Chemigation等。如果满足每种类型遥测标准的标准,我会允许多个标签。
这很好,但我真正想做的是保证WeatherStation有一定数量的特定传感器,如温度,风速等。我的想法是在我的网页或Windows窗体页面上,我然后可以抓住某种类型的所有遥测站,并保证它们具有正确的传感器。
那么最好的编码方式是什么?我可以在课堂上进行建模吗?或者我是否需要创建用某些类型的传感器抓取所有TelemetryStation的查询?
我应该添加的一些可能很重要的是我们如何获取数据。所以我们有一个由另一家公司制作的端口监听器,它将遥测站读数转储到csv文本文件中。因此,文件以工作站ID命名,每行都有一个日期时间戳,后跟逗号分隔的读数。没有关于读数的标识。所以我允许用户定义遥测站的模型,直到通过端口监听器传入的传感器及其在文本文件中的行中的位置。然后,我使用用户创建的数据模型解析文本文件。这样,如果公司更改模型或传感器数据在文本文件中的顺序,我们可以定义新模型,新数据流将有意义。
答案 0 :(得分:1)
你的电台的子类怎么样:
class WeatherStation : TelemetryStation
{
public Sensor Temperatur { get; set; }
public Sensor Wind { get; set; }
}
并在您的基类中反映属性
class TelemetryStation
{
private List<Sensor> _Sensors = null;
public List<Sensor> Sensors
{
get
{
if (_Sensors == null)
{
_Sensors = typeof(this).GetProperties().Where(p => p.PropertyType is Sensor).Select(p => (Sensor)p.GetValue(this, null)).ToList();
}
return _Sensors;
}
}
}
通过这种方式,您可以访问特定工作站上的所有传感器,并且可以确保特定的工作站类型具有一组特定的传感器。