.NET 3.5でコンパイルされた非同期ライブラリがありますが、.NET 3.5アプリケーションで使用されていますが.NET 4.0誰かが1つを渡そうとしている場合、CancellationTokens。.NET 4.0のものを含めるには、.NET 3.5との互換性を破る必要があります。私が今までに思いついた唯一のオプションは、 "オブジェクト"を渡してからリフレクションを使用することですが、それは醜いパブリックインターフェイスになります...クライアントコードが正しいものを渡していることを確認したい実行時ではなくコンパイル時のオブジェクト型。古いフレームワークバージョンで使用されているライブラリの新しい.NETフレームワーク機能をサポート
コンシューマアプリケーションに不要な依存性を導入することなく、コンパイル時に.NET 4.0オブジェクトに対してバインドする方法はありますか? 「この機能がある場合はこの機能を使用し、そうでない場合はスキップしてください」と言います。
いいえ、タイプをパブリックインターフェイスの一部にしたいので、2つの異なるバージョンをコンパイルする必要があります。 – adrianm
ライブラリの4.0バージョンと3.5バージョンを提案することは、もっと実用的かもしれません。 –
この#if!NET_3_5のような指令をステートメント#endifを使って使用すると、コード量を減らすことができます。これが良い方法であるかどうかはわかりません。 –