1

.NET 3.5 アプリケーションで使用されるため、.NET 3.5 でコンパイルされた非同期ライブラリがありますが、.NET 4.0 CancellationTokens を渡したい場合は、.NET 4.0 CancellationTokens を処理できるようにしたいと考えています。.NET 4.0 を含めるには.NET 3.5 との互換性を壊さなければなりません。これまでに思いついた唯一のオプションは、「オブジェクト」を渡すことを許可してからリフレクションを使用することですが、それは醜いパブリックインターフェイスになります...クライアントコードが正しいものを渡していることを確認したい実行時ではなく、コンパイル時のオブジェクト タイプ。

コンシューマー アプリケーションに不要な依存関係を導入することなく、コンパイル時に .NET 4.0 オブジェクトに対してバインドする方法はありますか? 「この機能がある場合は使用し、ない場合はスキップする」と言うには?

4

1 に答える 1

1

おそらく拡張メソッドとして、.NET 4.0 型を必要とするパブリック インターフェイスを別のアセンブリに含めることができます。また、必要に応じて (たとえば、.NET 4 型とメイン アセンブリ内の型の内部との間で対話する)、定義することもできます。リフレクションを完全に回避するために、メイン (.NET 3.5) アセンブリのインターフェイスを .NET 4 型のラッパーで .NET 4 アセンブリに実装します。

于 2012-01-10T21:42:48.910 に答える