Microsoft.Bcl 1.1.10 を導入してみたけど、どうやら .Net 4.0 だとライブラリから利用できない模様

NuGet Gallery | Microsoft.Bcl 1.1.10
.Net Framework 4.0から await などが使えるようになるライブラリです。
これつかって、.Net 4.5で公開されてるライブラリを移植して、アプリを作ろうと思いました。

App app = new App(instanceName.Text, tokenName.Text);
Me user = await app.Authorize();

Form1.cs(31,23,31,44): error CS1061: 'Task<Me>' に 'GetAwaiter' の定義が含まれておらず、型 'Task<Me>' の最初の引数を受け付けるアクセス可能な拡張メソッド 'GetAwaiter' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足していないかを確認してください。

えー、なんで?・ω・

dynamic app = new App(instanceName.Text, tokenName.Text);
Me user = await app.Authorize();

System.InvalidCastException: '型 'System.Runtime.CompilerServices.TaskAwaiter`1[Misq.Me]' のオブジェクトを型 'System.Runtime.CompilerServices.INotifyCompletion' にキャストできません。'

dynamic型にしたらコンパイルできるのでは?
とアドバイスがあったので試したら例外で落ちるし、キャストしたらコンパイルできませんw

どうも、外部クラスの関数を 非同期では呼び出すことはできない様です。
同じクラス内で同じコードを書いてやると動作しました ・ω・ むー
やっぱ、.Net 嫌い

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です