問題タブ [mef2]
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.
c# - MEF2 規則ベースのインポートで CompositionHost エクスポートからメタデータを取得する方法
これは私の最初のSOの質問ですので、ご容赦ください...
ConventionBuilder クラスを使用して MEF2 でコンポーネントをロードしようとしています。インポートされた型の属性として利用できるメタデータにアクセスする必要があるまで、すべてが期待どおりに機能します。次のクラスがあるとします。
これで、「IRunTimeCheck」のインスタンスの規則を定義する ConventionBuilder インスタンスを作成できます。
次に、アセンブリのリストを検査するように構成された「CompositionHost」インスタンスを利用します。への呼び出し
次に、エクスポートされたすべての「IRuntimeCheck」タイプのインスタンスを作成します。
私の質問は、エクスポート プロセス中に IRunTimeCheck 型のメタデータにアクセスする方法です。MEF1 では、ImportMany / Lazy メカニズムを利用できました。「CompositionHost」のすべてのエクスポート オーバーロードではメタデータ属性にアクセスできないため、これまで MEF2 でこの動作を再構築する良い方法を見つけていませんでした。
AddPartMetaData を使用して、ConventionBuilder レベルでメタデータを追加することができました。
MEF2 コードをデバッグすると、メタデータ情報が規約ビルダー レベルで追加されていることがわかります。しかし、この情報を再度エクスポートする方法がわかりませんでした。ExportFactory を利用しようとする投稿がいくつか見つかりました。しかし、それらのほとんどは、私の目標ではない非共有エクスポートで作業しています。
c# - Microsoft.Composition. WithDefaultConventions メソッドは何をしますか?
アセンブリのリストを返す GetAssemblies メソッドと、ConventionBuilder を返す GetConventions というメソッドがあると仮定すると、次のようにコンテナーを構成できます。
しかし、次のように構成することもできます。
質問: これら 2 つの方法の違いは何ですか?
私を投げているのは、WithDefaultConventions の「デフォルト」という言葉です。MSDN は、これが何を意味するのかをあまり明らかにしていません。メソッドが単純に WithConventions と呼ばれていた場合、私はそれを再考しなかったでしょう。
以下のメソッドの例。
GetAssembly:
GetConventions:
c# - MEF 2 のインストール/開始方法
プロジェクトで MEF 2 を使用したいと考えています。このガイドに従って開始しようとしていますが、コードの最初のスニペットを実行することすらできないようです。はRegistrationBuilder
単に存在せず、System.ComponentModel.Composition.Registration
本来あるべき名前空間を持っていないようです。
Nuget から Microsoft.Composition パッケージをインストールするだけです。名前空間内のクラスをSystem.Composition
うまく見つけることができますが、始めるには十分ではないようです。
.NET 4.5.1 で Visual Studio Professional 2013 を使用しています。このプロジェクトはコンソール プロジェクトですが (Windows プロジェクトも試しました)、最終的な目標はこれを ASP.NET で使用することです。
MEF2 を機能させるには、さらに何をする必要がありますか?
.net - MEF または MEF2 は .NET Framework に組み込まれていますか?
MEF を理解しようとしていますが、MEF と MEF 2 への参照を見ています。
このサイトには、MEF2 が MEF (4.0) よりもはるかに高速であると記載されています。
ほとんどの人が MEF と言うとき、私が話していることを理解する必要があります。
では、.NET Framework 4.5 にはどれが含まれているのでしょうか? MEFまたはMEF2?
dependency-injection - エクスポートされた値を MEF 2 で構成する
MEF 1 では、ComposeExportedValue(...)-Method ( ) を使用して、既存のオブジェクトをコンテナーに構成することができましたcontainer.ComposeExportedValue...
。Microsoft.Composition (MEF 2) でこれを行うにはどうすればよいですか? この目的のためのメソッドが見つかりません。
c# - MEF 2 でファクトリやそのメソッドをエクスポートするにはどうすればよいですか?
MEF 2 (Microsoft.Composition) を検討しており、既存のコード ベースと統合することを検討しています。
私の現在のコードベースにはIFactory
、単純な署名を持つインターフェイスがあります。
Func<T>
工場を登録して、工場でエクスポートを行うと、工場のT
出力として登録されるようにしたいと考えています。だから、このようなもの:
次のコードを使用して、新しいClass
インスタンスとCreate
メソッドへの参照を (デリゲートとして) 返します。Func<Class>
私はこの質問を見ましたが、MEF 2には当てはまらないようです。現在、あらゆる種類のものは異なりますが、はるかに軽量/合理化されているようです(宣伝されているように!)。
MEF 2 でやりたいことを達成することは可能ですか?