エクスポート属性がその型に適用されているかのように MEF で型をエクスポートするにはどうすればよいですか?
-
25-09-2019 - |
質問
コンパイル時に型に Export 属性が適用されたかのように、実行時に MEF Export 属性を型に動的に適用したいと考えています。
これを行う簡単な方法はありますか?
それを除けば、これを行う複雑な方法はありますか?
解決
.NET 4.5 を使用する余裕がある場合 (Windows XP のサポートを終了することを意味します)、MEF を使用できるようになりました。 属性なしの登録 別名 従来モデル.
.NET4 以前の MEF プレビュー リリースでは、これはそのままではサポートされていませんが、独自の実装を作成することで MEF を拡張できます。 エクスポートプロバイダー または ComposablePartCatalog.
の MEF Contrib Fluent 定義プロバイダー メソッド呼び出しによってインポートとエクスポートを登録できるようにする実装です。
の MEF Contrib 構成可能な定義の提供r は、XML ファイルでインポートとエクスポートを設定できるもう 1 つのオプションです。
さらに別のオプションは、次のように登録することです。 オートファク そしてそれを使用します MEFの統合 autofac コンポーネントを MEF で使用できるようにします。
他のヒント
私がいない、100%確信しているが、私はそれがMEFで行うことが可能だとは思いません。一つのパターンは、工場/プロバイダパターンですが、同様の動作を提供するために使用します。
interface IData {}
interface IDataProvider {
IData Data { get; set; }
}
[Export(IDataProvider)]
class DataProvider : IDataProvider {
public IData { get; set; }
}
あなたは、動的に使用したい値にIData
の実装を更新するには、このパターンを使用することができます。
所属していません StackOverflow