2017-11-30 9 views
1

複数のユーザーアカウントでManatee.Trelloを使用するにはどうすればよいですか?私は、データを取得するために、次のことをしようとしてきた

void InitializeTrello() 
    { 
     TrelloConfiguration.Serializer = new ManateeSerializer(); 
     TrelloConfiguration.Deserializer = new ManateeSerializer(); 
     TrelloConfiguration.JsonFactory = new ManateeFactory(); 
     TrelloConfiguration.RestClientProvider = new Manatee.Trello.WebApi.WebApiClientProvider(); 
     TrelloConfiguration.ThrowOnTrelloError = true; 
    } 

    T DownloadDataFromTrello<T>(TrelloAccount account, Func<T> func) 
    { 
     TrelloConfiguration.Cache.Clear(); 
     TrelloAuthorization.Default.AppKey = account.AppKey; 
     TrelloAuthorization.Default.UserToken = account.UserToken; 
     T result = func(); 
     TrelloProcessor.Flush(); 
     return result; 
    } 

方法DownloadDataFromTrelloは異なるAppKeyUserToken parametresで数回呼び出されています。私は機能の中でTrelloConfiguration.Cache.Clear()を呼び出しても、すべての呼び出しで同じデータを受け取ります。

静的クラスをアンロードして遅延読み込み機能を使わずにライブラリを使用し、遅延読み込み機能を保持したいと考えています。誰もが複数のユーザーアカウントでこのライブラリを正しく使用する方法を知っていますか?

答えて

0

すべてのエンティティコンストラクタは、TrelloAuthorization.DefaultのデフォルトのTrelloAuthorizationという2番目のパラメータをとります。エンティティインスタンスは、この承認をその存続期間を通じて使用します。

var customAuth = new TrelloAuthorization 
{ 
    AppKey = "your app key", 
    UserToken = "a user's token" 
} 
var card = new Card("card id", customAuth); 

デフォルトの許可を変更しても、あなたが(古い認証を使用して)戻って同じインスタンスになるだろうように、システムがキャッシュからそれらを引っ張っている場合、デフォルトのキャッシュは(キーとエンティティIDを見て例えば、カードはList.Cards列挙の一部としてダウンロードされます)。上記のようにコンストラクタを使って明示的にエンティティを作成すると、新しいエンティティがキャッシュに追加されますが、最初のエンティティのみがIDで照合されるため返されます。

authをキーの一致と見なすには、デフォルトのキャッシュを更新するか、独自のキャッシュを作成してTrelloConfiguration.Cacheプロパティを設定できるようにauthを公開する必要があります。私は今、どちらが好きかわからない。

カスタム認証を使用すると(キャッシュを定期的にクリアすることと組み合わせて使用​​することをお勧めします)、現在のところ最適なオプションです。この機能が必要な場合は、問題を作成したり、ここでお知らせください。

関連する問題

 関連する問題