問題タブ [mef]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mef - MEF を使用してオブジェクトの作成を制御できますか?
既存のコードにいくつかの拡張ポイントを追加する必要があり、可能な解決策として MEF を検討しています。スワップ可能にしたいデフォルトの実装 (ConcreteRNG) を備えた IRandomNumberGenerator インターフェイスがあります。これは MEF にとって理想的なシナリオのように思えますが、乱数ジェネレーターをインスタンス化する方法に問題がありました。現在のコードは次のようになります。
つまり、コンシューマは、各インスタンスが必要とするシードの提供を含め、必要な RNG をインスタンス化する責任があります。
私がやりたいことは、(DirectoryCatalog を使用して) MEF によって具体的な RNG 実装が検出され、インスタンス化されるようにすることです。これを達成する方法がわかりません。Generators プロパティを公開して [Import] としてマークすることはできますが、必要なシードを提供するにはどうすればよいですか?
私が見逃している他のアプローチはありますか?
c# - Type インスタンスのみを指定して MEF コンテナーからエクスポートを取得する
CompositionContainer インスタンスからエクスポートを取得する必要があるシナリオがありますが、操作する Type しかありません。コンパイル時の型がわからないため、エクスポートされたオブジェクトを通常の一般的な方法で取得することはできません。
通常、次のようにします。
しかし、私の場合、私はこれを持っています:
何か案は?
dependency-injection - DI/IoC に MEF を使用するリソースと例
MEF を DI に使用する方法について、よく調べてサンプルを探しました。私はそれがDIではないことを知っていますが、私が聞いたこと(ポッドキャストで実際に聞いたもの)からは、そのように使用できます...しかし、ブログの投稿やサンプルが見つかりません.
私はすでにこのプロジェクトで (プラグインをサポートするために) MEF を使用しており、DI にも活用するとよいと思いました。
多分私は間違った木を吠えていますか?
c# - .Net 4.0でMEFでDLRを使用する方法は?
MEFチームから、MEFが.Net4.0でDLRプラグインをサポートするという約束がありました。それはすでに起こっていて、いくつかのIronPythonオブジェクトを[インポート]できますか?
はいの場合、トピックへのリンクが役立ちます。
.net - エディター拡張機能で正規表現が爆発する
Django レンダリング エンジン用の Visual Studio エディター拡張機能を構築しています。私はそれを始めたばかりなので、これは本当にシンプルで、これまでのところ、ハイライトなど、私が期待していることを実行します。または、解析ロジックを追加し始めるまではそうでした。解析の一部は正規表現に依存しています。そして、ここに私の問題があります。静的変数、メンバー変数など、どのように試しても、新しい正規表現を呼び出すたびに、「オブジェクトがインスタンスに設定されていません」という例外が発生します。MEF での正規表現 (RegEx) の使用に問題はありますか?
どうぞ:
Regex コンストラクターのある行のブレークポイントは問題なくヒットします。次の F10 は例外を与えます
wpf - 別のダイアログを起動すると App.Current.MainWindow が変更されますか?
アプリケーションの起動時に、MEF プラグインから新しいダイアログを起動しています。App.Current.MainWindow
これがプラグインから起動されたダイアログに変わる理由を誰かが説明できますか? どうすればこれを防ぐことができますか?
c# - DirectoryCatalogでRefresh()を呼び出すと、ディレクトリで新しいDLLが見つかった場合にChangeRejectedExceptionがスローされます
私はMEFを実験していて、次のような特定のインターフェイスを実装する「プラグイン」を呼び出すテストプログラムを作成しました。
独自のアセンブリから、および見つかった場合は追加のDLLを配置するディレクトリから「プラグイン」をロードするサンプルコンソールプログラムを作成しました。プラグインディレクトリが空であるか(「ネイティブ」プラグインのみが呼び出される)、または互換性のあるDLLがあるかどうかに関係なく、プログラムは正常に動作します。しかし...ループの反復の間に新しいDLLが追加されると、DirectoryCatalogのRefresh()メソッドはChangeRejectedExceptionをスローします。これは、次のように説明されます。
構成は変更されません。次のエラーのため、変更は拒否されました。コンポジションで単一のコンポジションエラーが発生しました。根本的な原因を以下に示します。詳細については、CompositionException.Errorsプロパティを確認してください。
1)パーツ「MEFTest.Program」の再構成不可能なインポート「MEFTest.Program.ProberSet(ContractName = "ProbeContract.IProbe")」によって防止されたエクスポートの変更。
プログラムは以下のとおりです。追加しようとしているDLLのコードが続きます。私は何が間違っているのですか?
プラグイン。他の2つのプラグインは類似していますが、唯一の違いは、メインプログラムと同じアセンブリに存在することです。
c# - MEF(Managed Extensibility Framework)は「ダック」タイピングを行いますか?
私は2つのアセンブリを持っています:
アセンブリ1:
アセンブリ2:
私はこれを機能させる方法を知っています。MEF(Managed Extensibility Framework)にオブジェクトを要求するか、オブジェクトを名前だけでなく、正しいIWeaponをエクスポートするように取得することができます。
すべてのインターフェイスポイントが実装されている場合、MEFは「ダック」タイピングを実行してプロキシオブジェクトを返すことができますか?
.net - Visual Studio 2010 アドインの記事/チュートリアルを書いていますか?
Visual Studio 2010 のアドイン/プラグインの作成に関する優れた記事/チュートリアルを知っている人はいますか?
wpf - 1 つのプロジェクトで MEF と Prism (CAL) を使用することは可能ですか (そして合理的ですか)?
現在、Prism (CAL) を使用する WPF プロジェクトに取り組んでおり、1 つのプロジェクトで Prism と MEF の両方を使用することをお勧めします。
モジュール性には Prism を使用し、拡張性には MEF を使用します。私のプロジェクトはペイントのようなアプリケーションなので、Prism はモジュール分離 (ツールボックス、モジュールとしてのキャンバスなど) を提供し、MEF はペイントする新しい形状 (つまり、長方形、円など) の拡張ポイントを提供するために使用されます。
それは理にかなっていますか、それとも Prism だけで同様の機能を利用できますか?
前もって感謝し、よろしくお願いします、crischu