問題タブ [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.

0 投票する
1 に答える
1487 参照

dll - MEF で PrivateBinPath を設定するにはどうすればよいですか?

MEF で PrivateBinPath を設定するにはどうすればよいですか?

これは私がやろうとしていることです: .NET で参照の読み込みパスを変更するには?

0 投票する
1 に答える
1504 参照

c# - Rhino Mocksを使用してMEFエクスポートをモックするにはどうすればよいですか?

Managed Extensibility Framework(MEF)を参照して、モックを使用してクリーンなテストを作成する方法を模索しています。

3つのプライベートインポートを持つエクスポートされたコンポーネントがあります。インポートされた各オブジェクト(フィールド)をモックする必要があります。CompositionContainerが、構成可能なパーツのインポートされたプライベートフィールドを設定するために派手なリフレクション戦術を使用していることを考えると、単体テストでも、コンテナーを使用してそれらのフィールド値を設定する必要があります。

テストしているコンポーネントのインポートを満たすために使用できるように、Rhino Mocksで作成した動的オブジェクトを有効なエクスポートとして受け入れるように実行時にコンテナーに指示するにはどうすればよいですか?

0 投票する
2 に答える
4410 参照

c# - MEF 作成ポリシー

MEF エクスポートに共有パーツ作成ポリシーを使用しようとしています。しかし、それは私が考えていたようには機能していないようです。アプリケーションで合成を 2 回行い、毎回オブジェクトの新しいコピーを取得します。オブジェクトのインスタンス化にインスタンスカウンターを追加することでこれを証明しました

すべてをデバッグで実行します。実際、コンポジションを 2 回目に行うと、instCount = 2 の FakeAutocompleteRepository の新しいコピーを取得します。エクスポート セクションには次のものが含まれます。

後続のリクエストで同じインスタンスを取得するためのトリックはありますか? それが作曲中に私がしていることである場合、これは私がそれをしている方法です

基本的に、テスト中に特定の構成を強制しようとしています。これらの構成を単体テストするためのより良いアイデアがあれば、私はすべて耳にします。

0 投票する
7 に答える
49923 参照

.net - MEFとMAFのどちらかを選択する(System.AddIn)

Managed Extensibility Framework(MEF)とManaged AddIn Framework(MAF、別名System.AddIn)は、非常によく似たタスクを実行するようです。このStackOverflowの質問によると、MEFはSystem.Addinの代わりになりますか?、両方を同時に使用することもできます。

どちらを使用するのか、もう一方を使用するのはいつですか。どのような状況で、両方を一緒に使用することを選択しますか?

0 投票する
1 に答える
7019 参照

wpf - MEFを使用してWPFDataTemplateをインポートしますか?

私はMEFを拡張性フレームワークと見なしていましたが、1つの点を除いて、ほとんど売れています。

ViewModelとViewの両方をインポートして表示したいとします。そのための「正しい」方法は、MEFパーツがViewModelクラスと、ViewModelを表示するDataTemplateをエクスポートすることだと思います。例として、Visioのようなアプリケーションを作成していて、図形のライブラリをインポートするとします。各図形には、Xamlで定義されたビューと、基になるModelオブジェクトをラップするViewModelが必要です。

これは可能ですか?DataTemplateのインポートコントラクトはどのようになりますか?インポートされたDataTemplateをWPFに認識させるにはどうすればよいですか?

0 投票する
6 に答える
7190 参照

c# - C#3.0では「var」を使用します。C#2.0での代替手段は何ですか?

Managed Extensibility Framework(MEF)を使用して.Netでプラグイン可能なアーキテクチャを学習しています。ネット上でサンプルコードを見ましたが、それを実装しようとすると、ある時点で行き詰まりました。

コードは以下を使用していました:

これvarはC#3.0で利用できますが、私はC#2.0でコーディングしています。

上記の2つのステートメントの代替は何ですか?VS 2005を使用してC#2.0でそれらを機能させるにはどうすればよいですか?


私は今このbtを言ってみました

エラー1タイプまたは名前空間名'AttributedAssemblyPartCatalog'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?) C:\ Documents and Settings \ test \ Desktop \ MEFDemo \ MEFDemo \ Program.cs 31 13 MEFDemo

ここで、SystemComponentModel.Compositionへの参照を追加しました

0 投票する
1 に答える
4329 参照

mef - 簡単な MEF コード サンプルを探す

Microsoft Managed Extensibility Framework (MEF) の使用方法を示す簡単なコード サンプルを探しています。

私はhttp://blogs.msdn.com/brada/archive/2008/09/29/simple-introduction-to-composite-applications-with-the-managed-extensions-framework.aspxのコードが本当に好きですが、 MEF CTP 2 または 3 用に作成されたもので、現在のバージョン (CTP5) では構文が変更されています。

0 投票する
4 に答える
5139 参照

c# - MEFのAggregateCatalogまたはDirectoryCatalog内でアセンブリを列挙する方法は?

フォルダーからいくつかのアセンブリをロードする MEF (Microsoft Extension Framework) アプリケーションがあります。アプリケーションのエクスポートを生成したアセンブリを列挙する必要があります。

これを行う 1 つの方法は、 を呼び出して imports を列挙することGetExportedObject().GetType().Assemblyです。しかし、インポートをインスタンス化せずにこれを行う方がクリーンです。ロードされたアセンブリをカタログなどから取得する方法はありますか?

著作権、バージョン、名前などの属性を取得するには、アセンブリが必要です。私のフォルダーには、エクスポートがあるアセンブリとないアセンブリの両方を含めることができますが、必要なのは、アプリ内のインポートをすべて満たすアセンブリのみです。

0 投票する
1 に答える
684 参照

c# - アセンブリが見つからないため、MEF で逆シリアル化エラーが発生しました

MEFを使用しています。読み込まれたアセンブリの 1 つに依存するオブジェクトの 1 つをシリアル化します。

このオブジェクトを逆シリアル化しようとすると、「アセンブリが見つかりません」という例外がスローされます。MEF は、この逆シリアル化の前にアセンブリを別のクラスに読み込みます (これの範囲はアプリケーション全体であると想定し、パブリック プロパティに読み込みます)。

MEF は既にこれらのアセンブリをアプリケーション ドメインに読み込んでいるのに、なぜBinaryFormatter.Deserialize()それらを見つけられないのでしょうか?

使用できますSystem.Reflection.Assembly.Loadが、MEF を使用する意味は何ですか? MEF はこれに対して特別なサポートを受けていますか?

0 投票する
1 に答える
2979 参照

c# - MEF(Managed Extensibility Framework)を使用してディレクトリからdllをロードする方法

私は現在MEFと協力していて、いくつかの問題に直面しています

私が欲しいのは、ディレクトリからdllをロードすることです。

まず、ディレクトリをスキャンして、2つのものを辞書に保存します

それぞれのDLLからの名前プロパティ(文字列として)

およびモジュール名(文字列として)

これがScanDirectory()コードです

チェックボックスリストに名前を表示します。チェックボックスからdllを選択すると。

私は次のようにインポートステートメントを持っています

現在、私のプログラムは正常に実行されています。チェックボックスリストからプラグインをチェックしたときです。それを「loaded」ディレクトリに移動し、QueryPlugin()メソッドが「loaded」ディレクトリを調べてプラグインを検索します。

チェックボックスリストからプラグインのチェックを外すと。「ロードされた」ディレクトリから移動します...

私が欲しいのは、batch.RemovePart()メソッドを使用して、あるディレクトリから別のディレクトリへのdllのこの急速な移動を取り除くことです。

注:プラグインを手動でバッチに追加していません

これの代わりに、DirectoryCatalog();;を使用しました。