我很难掌握类型提供者。我想获得一些关于类型提供程序方法对于以下用例的有用性的反馈。
非常不幸的是,我们的遥测 API 返回对象为List<Dictionary<string, object>>
. Dictionary
具有键字符串(表示列名称),值可以是任何对象(不过,通常这是系统命名空间中的某种值类型)。另外,还有一个方法可以返回Dictionary<string, Type>
表示架构的集合(列名称 -> 类型绑定)。我们通常使用这些数据进行临时/探索性分析和报告。
带有 R 类型提供程序的 F# 似乎是上述分析的有力武器。仅通过将列名称键入为字符串并转换对象来访问数据确实很麻烦。我想创建一个类型提供程序,它将从给定的字典(创建字典的连接字符串)创建强类型。
例如。从
new List<Dictionary<string, object>>
{
new Dictionary<string, object> { {"a", 1}, {"b","data"}, {"c", DateTime.UtcNow } },
new Dictionary<string, object> { {"a", 3}, {"b","data2"}, {"c", DateTime.UtcNow } }
}
我想得到
type MyObject
member a : int
member b : string
member c : DateTime
List<MyObject> ...
这是类型提供者的正确使用吗?正如我所说,我对这个领域还很陌生,因此我们将不胜感激。此外,如果您有任何类似问题的示例,我可以使用它来快速入门,请分享(Csv 类型提供程序似乎是一个很好的起点)。