Mono中的System.Data

Mono中的System.Data是否已扩展为包含额外的功能? 我试图在Mono.Data.SqlExpressions中使用为Mono编写的SQL解析器,但是当包含SqlExpressions名称空间中的所有类时,项目仍然无法编译,因为System.Data中的类不匹配。
例如,System.Data.DataColumn没有定义PropertyChanged事件。 我需要使用Mono System.Data库吗? 当Mono DataColumn类包含在项目中时,不会出现编译错误(它引用类,如DataCategory,在.Net框架中找不到)。

另外,任何帮助如何将Mono中的Sql Parser移植到Microsoft的.Net框架将不胜感激。 我试图下载源代码并将缺少的库添加到项目中,但这种方法看起来有缺陷。 缺少依赖的数量似乎增加而不是解决问题。


单声道试图成为二进制和API与MS的实施兼容。 这意味着除少数内部支持方法和类外,Mono公开的所有API都应该与MS .Net相匹配。 这是为了避免复杂化,就像人们假设存在一种方法一样,因为它在单声道中编译,然后毕竟在MS.Net上不起作用。

当Mono贡献者实施新的代码和功能时,通常将其纳入单独的程序集和项目中。 Mono.Data顾名思义就是这样一个“扩展”,因此您需要包含所有依赖程序集才能构建它。 如果Mono.Data.dll及其代码将在MS.Net上运行,或者不是它的问题,或者检查文档并对其进行测试。

至于你的第二个问题,我不能告诉你具体情况,但除非代码具有在Windows上运行的特定信息,否则它很可能需要大量工作才能移植。 与任何API一样,很多代码不会暴露给公共接口,并且在移植代码时需要解决实现的内部功能。 我建议你花一些时间分析代码的工作原理,然后尝试通过在Mono代码上删除尽可能多的代码来使它在MS.Net上运行。 最后,如果代码足够兼容,您应该考虑使用编译指令和#if!MONO pragmas修补Mono的源代码,以便将问题节省给未来的用户。

链接地址: http://www.djcxy.com/p/52211.html

上一篇: System.Data in Mono

下一篇: Writing .NET for Windows via Linux and Mono