Google.Apis.Urlshortener get_ServiceParameters中缺少方法

时间:2013-09-08 19:20:58

标签: c#-4.0 google-api google-url-shortener

我正在尝试使用Google Shortener URL API https://developers.google.com/url-shortener/v1/getting_started,但在使用C#库Google.Apis.Urlshortener.v1时,我遇到了一个沉重的问题。我试图在URL上调用“插入”,以便使用OAUTH2.0身份验证获得缩短的URL。我已成功检索到有效的刷新令牌和身份验证器,但执行该功能时似乎缺少某些内容。我希望有人做过这项工作。

代码

var init = new BaseClientService.Initializer();
init.Authenticator = _authenticator; 
//init.ApiKey = ApiKey;
var urlService = new UrlshortenerService(init);
var shortUrl = urlService.Url.Insert(new Url { LongUrl = url }).Execute().Id; // fails...

堆栈跟踪:

<Error>
<Message>An error has occurred.</Message>
<ExceptionMessage>
Method 'get_ServiceParameters' in type 'Google.Apis.Urlshortener.v1.UrlshortenerService' from assembly 'Google.Apis.Urlshortener.v1, Version=1.5.0.18, Culture=neutral, PublicKeyToken=null' does not have an implementation.
</ExceptionMessage>
<ExceptionType>System.TypeLoadException</ExceptionType>
<StackTrace>
at DoguApi.Controllers.UrlShortenerController.GetShortenedUrl(String url) at lambda_method(Closure , Object , Object[] ) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass13.<GetExecutor>b__c(Object instance, Object[] methodParameters) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object instance, Object[] arguments) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.<>c__DisplayClass5.<ExecuteAsync>b__4() at System.Threading.Tasks.TaskHelpers.RunSynchronously[TResult](Func`1 func, CancellationToken cancellationToken)
</StackTrace>
</Error>

1 个答案:

答案 0 :(得分:0)

简答: 将解决方案中所有项目中所有引用的Google.Apis的DLL文件更新为同一版本。

答案很长: 我的问题是我的解决方案中有两个项目,一个包括Google.Apis v.1.4.0,另一个包含Google.Apis v.1.5.0。因为Google.Apis v.1.4.0的那个通过REST API为另一个项目服务,所以在编译时没有找到错误。通过将两者更新到最新版本,错误得到了解决。