0

Chello (Trello API の C# ラッパー) を使用しています。ここのドキュメントに従って、引数「createCard」を渡す必要があります: https://trello.com/docs/api/card/index.html

そして、これは私がChelloから使用している関数です:

public IEnumerable<CardUpdateAction> ForCard(string cardId, object args)
    {
        string queryString = BuildQueryString(args);

        return GetRequest<List<CardUpdateAction>>("/cards/{0}/actions?{1}", cardId, queryString);
    }

私はこの方法でこれを呼び出してみました:

 List<CardUpdateAction> cua = chello.CardUpdates.ForCard("5264d37736695b2821001d7a","createCard").ToList();

しかし、エラーが発生します:パラメーターカウントの不一致

この機能について:

 protected static string BuildQueryString(object args)
    {
        string queryString = String.Empty;
        if (args != null)
        {
            StringBuilder sb = new StringBuilder();
            foreach (var prop in args.GetType().GetProperties())
            {
                sb.AppendFormat("{0}={1}&", prop.Name, prop.GetValue(args, null));
            }
            if (sb.Length > 0) sb.Remove(sb.Length - 1, 1);
            queryString = sb.ToString();
        }
        return queryString;
    }
4

2 に答える 2

3

問題は、使用している API が、使用するタグと等しいパブリック プロパティを持つクラスを渡すことを期待しているという事実です。

これは、匿名型を使用すると非常に簡単に実行できます(要点を説明するために、少し異なる例を使用しています)

//This will cause BuildQueryString to return "actions=createCard&action_fields=data,type,date"
var options = new { actions = "createCard", action_fields = "data,type,date" };

List<CardUpdateAction> cua = chello.CardUpdates.ForCard("5264d37736695b2821001d7a",options).ToList();
于 2013-11-16T21:56:53.813 に答える