2013-06-18 34 views
9

我使用Json.NET/Newtonsoft.JSON库目前得到以下错误:单丢失System.Numerics.BigInteger.Parse(字符串的IFormatProvider)

Missing method System.Numerics.BigInteger::Parse(string,IFormatProvider) in assembly 
/usr/lib/mono/gac/System.Numerics/4.0.0.0__b77a5c561934e089/System.Numerics.dll, 
referenced in assembly ~/dev/Mono/Mercury/Mercury/bin/Debug/Newtonsoft.Json.dll 

这发生每次JSON的检索从CouchDB的数据库有时间一个数值字段。我从搜索中发现,该库从System.Numerics调用的方法尚未implemented in Mono

问题是Json.NET是我正在使用的另一个库(WDK.API.CouchDB [3])的依赖项。

有什么办法可以绕过这个,而不需要调整任何库的来源?有什么建议么?

PS:我在Linux上使用Mono 3.0.6和MonoDevelop 4.0.8。我刚开始学习C#,这是我的第一个项目。我试图在网上搜索这个主题,但没有取得丰硕的成果。

感谢

[3] code.google.com/p/skitsanoswdk

回答

2
+0

是的,我认为这将不得不做。与Mono的Nuget不是很好用,我避免使用旧版本的库。感谢您的链接,它没有被我注意到。 – eDrago

+0

不幸的是,当引用其他需要Json.NET作为它们的依赖的库(并且我也必须从我的项目中的NuGet管理中删除)时,这是不实际的。 –

0

您是否尝试过的字符串转换为整数任何其他方法?我通常使用Convert.ToInt32(//字符串),或者如果你想要巨大的整数,然后使用Convert.ToInt64(//字符串)

否则,检查出来。该的TryParse()函数是非常方便的:

http://www.dotnetperls.com/convert-string-int

+0

这不是我正在尝试进行转换的人。正如我在这个问题上所说的那样,它正在由Json.NET库完成。 – eDrago

+1

我实际上遇到了同样的问题,并且JSON.NET代码实际上首先执行了Int64TryParse()。如果Int64TryParse()引发溢出异常,它只会尝试BigInteger.Parse。 – winwaed

-1

如果方法不落实,做的最好的事情是实现它。 Mono是一个开源项目。因此,如果您不能等待开发人员实施某些内容,则应该加强并实施它,并随您的更改发送一个请求。

+1

这对C#初学者来说不是一个非常有用的回应。 – Kyberias

+0

嘿,我想我错过了关于“初学者”的部分,它在哪里? – knocte

+1

OP说的部分:“我刚开始学习C#,这是我的第一个项目。” – Kyberias

18

要解决此问题,您可以添加对System.Numerics的引用,然后将其属性Copy Local设置为true

+1

是的!有用!谢谢。 – Gengzu