【问题标题】:Getting MissingMethodException when using Manatee.trello to get list of users使用 Manatee.trello 获取用户列表时出现 MissingMethodException
【发布时间】:2016-06-09 11:08:08
【问题描述】:

我有以下代码,旨在获取组织所有用户的列表。

public static IEnumerable<Member> ListTrelloUsers()
    {
        var serializer = new ManateeSerializer();
        TrelloConfiguration.Serializer = serializer;
        TrelloConfiguration.Deserializer = serializer;
        TrelloConfiguration.JsonFactory = new ManateeFactory();
        TrelloConfiguration.RestClientProvider = new RestSharpClientProvider();
        TrelloAuthorization.Default.AppKey = ApplicationKey;
        TrelloAuthorization.Default.UserToken = GrandToken;

        var myOrganization = Member.Me.Organizations.FirstOrDefault().Id; //Exception thrown here.
        var orgToAddTo = new Organization(myOrganization);

        return orgToAddTo.Members.AsEnumerable();
    }

但我得到了一个

System.MissingMethodException

扔在

RestSharp.IRestRequest RestSharp.RestRequest.AddFile(System.String, Byte[], System.String)

那么为什么会抛出这个异常?正确工作的代码应该是什么样的?

澄清

我也将接受不基于 Manatee.Trello 的工作 C#/ASP.Net MVC 代码作为答案。 (包括纯 API 调用。)

我曾尝试直接使用组织 ID 作为

var orgToAddTo = new Organization(OrganisationId);

但是当我调用该方法的返回对象(例如使用 Count())时,这只会导致稍后抛出相同的异常。

更新:我尝试将构建设置为 Release 而不是 Debug,现在(相同的)异常被抛出

TrelloConfiguration.RestClientProvider = new RestSharpClientProvider();

【问题讨论】:

  • 感谢您使用 Manatee.Trello。请在下面查看我的答案以获得解释。

标签: c# api restsharp trello manatee.trello


【解决方案1】:

这是我很久以前报告的 RestSharp 问题,尽管他们否认这是一个问题。如果您使用的是 .Net 4.5+,则可以尝试使用 Manatee.Trello.WebApi 包而不是 Manatee.Trello.RestSharp。

TrelloConfiguration.RestProvider = new WebApiClientProvider();

Here 是我的 Trello 卡,用于跟踪问题。 Thisthis 是我创建的 RestSharp 问题。

我也能够重新创建此问题,但没有得到他们的帮助来解决它。

【讨论】:

  • 谢谢,但我应该用什么替换 TrelloConfiguration.RestClientProvider = new RestSharpClientProvider(); 才能改用 WebAPI?
  • 再次感谢您。我一定用过 BitBucket 以外的指南。
【解决方案2】:

显然,缺少方法的类位于程序集中,与您在编译项目时使用的程序不同。仔细检查并确保在编译和执行时都使用与上述类相同的程序集。 根据您提供的信息,这是我最好的线索。

  • 基本上,检查项目引用并确保为类保存程序集使用正确的引用。

【讨论】:

  • 你的意思是我应该检查一下,以便使用的引用具有与安装的 NuGet 包相同的版本号?
  • ... 以及确保在这两种情况下使用相同的实际构建。因为相同的构建版本可能有不同的实现(即使是完全不可接受的)。因此,最好的办法是确保在执行文件夹中,您拥有与构建项目时用作参考的相同“物理”程序集文件。
  • 只有一个版本,因为它是一系列 NuGet 包,我只安装过一个版本/版本。
  • 好吧,对我来说,你有这样的例外听起来太奇怪了。我最好的建议是使用 VS 调试器并深入研究抛出异常的行。(在该行使用 F11)。 VS 2015 具有非常好的挖掘程序集的功能,因此您很有可能会找到导致抛出异常的行和原因.. 想不出更好的主意。
  • 使用 Step Into/F11 对我的影响是我收到一条错误消息,提示我没有 Manatee.Trello 的源代码:/
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-10
  • 1970-01-01
相关资源
最近更新 更多