Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 可以在可移植类库中使用DataSet和DataTables吗_C#_Datatable_Dataset_Cross Platform_Portable Class Library - Fatal编程技术网

C# 可以在可移植类库中使用DataSet和DataTables吗

C# 可以在可移植类库中使用DataSet和DataTables吗,c#,datatable,dataset,cross-platform,portable-class-library,C#,Datatable,Dataset,Cross Platform,Portable Class Library,我正在从事一个依赖于DataSet和DataTable的项目。我们希望进入跨平台领域,因此正在研究可移植类库。然而,我们无法找到如何在可移植类库中使用DataSet和DataTable。有空吗 也许我们应该远离数据集和数据表,但我们现在已经拥有了。不,数据集和数据表是特定于Windows的数据结构,它们不会交叉兼容,您可以计划将结果序列化为XML、Json,可在所有平台中使用,因此,实现了预期的互操作性,这肯定意味着在Windows中,您需要一个包装器来将XML/Json反序列化为相关的内存对象

我正在从事一个依赖于DataSet和DataTable的项目。我们希望进入跨平台领域,因此正在研究可移植类库。然而,我们无法找到如何在可移植类库中使用DataSet和DataTable。有空吗


也许我们应该远离数据集和数据表,但我们现在已经拥有了。

不,数据集和数据表是特定于Windows的数据结构,它们不会交叉兼容,您可以计划将结果序列化为XML、Json,可在所有平台中使用,因此,实现了预期的互操作性,这肯定意味着在Windows中,您需要一个包装器来将XML/Json反序列化为相关的内存对象,如DataTable。在我开发的Shim库中,对
DataSet
s和
DataTable
s有基本且不完整的支持

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


您可能想看看Shim是否适合您的需要。它也可以作为软件包提供。

我已经简单地查看了您的库。我试图将其导入我的PCL,但例如System.ComponentModel的using语句似乎无法解析。除了简单地安装软件包外,是否还需要一些设置?我还查看了您的代码,发现其中相当多的代码#如果PCL抛出新的PlatformNotSupportedException(“PCL”)#其他声明。看起来你不是在支持PCL。我有点困惑,Shim使用了所谓的技术;PCL库只提供支持的类型、方法和属性的声明存根,而实际实现是在特定于平台的库中提供的,这些库在应用于应用程序时会替换PCL垫片。NuGet根据平台自动应用垫片库的相关实例。如果您需要更多帮助,请随时在Shim Gitter聊天室继续讨论。是否可以将数据集数据绑定到控件项源?