【问题标题】:Can you use DataSet and DataTables in a Portable Class Library可以在可移植类库中使用 DataSet 和 DataTables
【发布时间】:2016-02-24 07:52:25
【问题描述】:

我正在开发一个依赖 DataSet 和 DataTable 的项目。我们希望进入跨平台,因此正在研究便携式类库。但是我们不知道如何在可移植类库中使用 DataSet 和 DataTable。它们可用吗?

也许我们应该远离 DataSets 和 DataTables,但我们现在已经拥有了。

【问题讨论】:

    标签: c# datatable dataset cross-platform portable-class-library


    【解决方案1】:

    不,Dataset 和 DataTable 是 Windows 特定的数据结构,它们不会交叉兼容,您可以计划将结果序列化为 XML、Json,这将在所有平台上都可用,从而实现与预期的互操作性一样,这肯定意味着比在 Windows 中您需要一个包装器来将 XML / Json 反序列化为相关的内存对象,如 DataTable

    【讨论】:

      【解决方案2】:

      在我开发的Shim 库中,对DataSets 和DataTables 有基本的和不完整的支持。

      Shim 是一个可移植类库,它提供了一些在 .NET Framework 中可用但在 PCL 中不可用的类型和方法的基本实现。我开发 Shim 主要是为了便于通过 PCL 将Accord.NET Framework 移植到各种平台。 Accord.NET在一定程度上依赖于ADO.NET,因此我实现了ADO.NET类和方法Accord.NETShim 中需要 /em>。

      您可能想看看 Shim here 看看它是否符合您的需求。它也可以作为NuGet 包提供。

      【讨论】:

      • 我已经简要浏览了您的图书馆。我试图将它导入我的 PCL,但 System.ComponentModel 的 using 语句,例如,似乎没有得到解决。除了简单地安装软件包之外,还需要一些设置吗?我还查看了您的代码,发现其中不少 #if PCL throw new PlatformNotSupportedException("PCL"); #else 语句。看起来您不支持 PCL。我有点迷茫
      • Shim 使用所谓的bait-and-switch 技术; PCL 库仅提供支持的类型、方法和属性的声明存根,而实际实现在特定于平台的库中提供,这些库在应用于应用程序时替换了 PCL Shim。 NuGet 会根据平台自动应用 Shim 库的相关实例。如果您需要更多帮助,请随时在 Shim Gitter 聊天室here继续讨论。
      • 是否可以将数据集数据绑定到控件项源?
      猜你喜欢
      • 1970-01-01
      • 2012-11-21
      • 1970-01-01
      • 2013-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多