f# - Fsharp.Data XmlProvider 对 DateTime 的类型推断不正确

标签 f# f#-data

我惊喜地发现 XmlProvider 试图推断类型。但是我遇到了一个问题。有一个值为 5.25.2 的 xml 元素。我希望它的类型是字符串。但是 XmlProvider 似乎将其推断为 DateTime。

有没有办法覆盖特定 xml 元素的类型?

目前,我正在通过设置 InferTypesFromValues=false 来变通。

> sample.Scan.ScannerVersion.Value;;
val it : System.DateTime =
  5/25/2002 12:00:00 AM {Date = 5/25/2002 12:00:00 AM;
                         Day = 25;
                         DayOfWeek = Saturday;
                         DayOfYear = 145;
                         Hour = 0;
                         Kind = Local;
                         Millisecond = 0;
                         Minute = 0;
                         Month = 5;
                         Second = 0;
                         Ticks = 631578816000000000L;
                         TimeOfDay = 00:00:00;
                         Year = 2002;}

最佳答案

在我看来你的选择是:

  • 提供您自己的 xml 片段作为规范,以便您可以更好地影响推断类型。
  • InferTypesFromValues=false 参数用于 XmlProvider,以便所有属性都是 string 类型。

在第二种情况下,这可能看起来像

type Things = XmlProvider<MySample, InferTypesFromValues=false>

希望对您有所帮助。

关于f# - Fsharp.Data XmlProvider 对 DateTime 的类型推断不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42048139/

相关文章:

f# - 在 HTML 解析器中按类或 id 查找对象

visual-studio - Visual Studio F# 解决方案中配置文件的最佳实践

f# - 没有常量 "template arguments"的 F# 泛型?

f# - 使用 FSharp.Data.Json.JsonValue.Parse 时如何解决 MissingMethodException

Json 提供的类型生成不适用于 "with"

c# - 从 C# 调用 Freebase Provider 时 FSharp.Data 'System.MissingMethodException'

f# - 部署到IIS应用程序时升级FSharp.Core版本,程序集引用错误

f# - 在 Mono 上运行 F# 基准测试时出现运行时异常

visual-studio-2012 - F# 3.1 是否可用于 VS 2013 Express for Web?

f# - 无法在 Fsharp 脚本文件中打开命名空间