从C#调用Freebase Provider时,FSharp.Data’System.MissingMethodException’
嗨我在F#上有这段代码,如果我从F#Interactive Editor测试它,那么isPalindrome和Extract方法都能正常工作:
namespace Portable3 open FSharp open FSharp.Data open Microsoft.FSharp.Linq open FSharp.Data.FreebaseOperators open MyTrip.Model.MyTrip open MyTrip.Model.FreeBase open System.Runtime open System.Linq module math = let isPalindrome (str : string) = let rec check(s : int, e : int) = if s = e then true elif str.[s] str.[e] then false else check(s + 1, e - 1) check(0, str.Length - 1) [] module Extractor = [] let FreebaseApiKey = "AIzaSyCO31Ls" type FreebaseDataWithKey = FreebaseDataProvider let Extract mid = let dataWithKey = FreebaseDataWithKey.GetDataContext() let place = dataWithKey.Commons.Travel.``Travel destinations``.Where( fun x-> x.MachineId = mid) |> Seq.toList let result = new Place() let firstPlace = place.Head result.Name <- firstPlace.Name result
我从C#Console应用程序中调用此代码,如下所示:
class Program { static void Main(string[] args) { //Works well var isPalin = math.isPalindrome("ABsBA"); //fails var res = Extractor.Extract("/m/04jpl"); Console.WriteLine(res); Console.Read(); } }
控制台C#项目是.net Framework 4.5.1版本,我也在这个项目上下载了FSharp.Data和FSharp.Core。 执行isPalindrome时效果很好但是当我即将执行Extract方法时会出现此错误:
An unhandled exception of type 'System.MissingMethodException' occurred in FsharpConsoleTest.exe Additional information: Method not found: 'FSharp.Data.Runtime.Freebase.FreebaseDataContext FSharp.Data.Runtime.Freebase.FreebaseDataContext._Create(System.String, System.String, System.Boolean, System.String, System.Boolean, System.Boolean)'.
对于发生了什么有什么想法吗? 我在互联网上搜索但没有发现任何相关内容。 谢谢!
最后的问题是使用带有FSharp.Data的可移植库。 我尝试在普通的F#库中使用它,我发现没有问题,我有所有的调试function,并且没有来自c#与f#集成的错误!
上述就是C#学习教程:从C#调用Freebase Provider时,FSharp.Data’System.MissingMethodException’分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/985234.html