問題タブ [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.
c# - MEF はインポートの順序をどのように決定しますか?
ImportMany
MEF では、属性を使用して複数のパーツをインポートできます。関連するエクスポートを取得し、それらを入力している列挙型に追加する順序をどのように決定しますか? たとえば、特定の順序で起動する必要がある複数の IRule をインポートするにはどうすればよいでしょうか? 私が考えることができる唯一の方法は、IRule に OrderValue プロパティを設定し、手動で並べ替えることです。
c# - VS2010マウスプロセッサ拡張機能-機能しない
Visual Studio 2010拡張機能を試しています。ここでは、IMouseProcessorによって公開されたイベントを操作する必要があります。
ドキュメントからわかる限り、IMouseProcessorProviderを作成し、エクスポートでMEFを使用して、VisualStudioで自動的に取得できるようにする必要があります。
私はこのクラスを作成しました:
Visual Studioの実験的なインスタンスを実行すると、拡張機能が拡張機能マネージャーに表示されます。しかし、私のカスタムマウスプロセッサプロバイダーが呼び出されることはありません。私は何かが欠けていますか/私は何が間違っていますか?
.net - ASP.NET のスレッド静的変数に ObjectContext を格納しても安全ですか?
リクエストで呼び出されるさまざまなサービス/リポジトリ間で共有するには、ObjectContext
を保存する必要があることを読みました。代わりにクラス変数の属性を使用するのが安全かどうか疑問に思っています。それは安全なことですか?各リクエストは独自のスレッドで処理されますか?HttpContext.Current
ObjectContext
ObjectContext
[ThreadStatic]
static
c# - インポートプロパティは常にnull(MEFインポートの問題)
私はしばらくの間MEFを使用して物事を成し遂げようとしますが、今、私は助けが必要な問題に遭遇します。
説明:2つのDLLと1つのEXEファイルがあります。ClassLibrary1(LoggerImpl.cs、SomeClass.cs)ClassLibrary2(ILogger.cs)WindowsApplicationForms1(WindowsApplicaitonForms1.cs、Program.cs)
なぜこれが機能しないのか、助けや指示が必要ですか?
c# - MEF:CompositionContainerはどこに置くべきですか?
私は、アプリケーションが使用する必要のあるデータアクセス層の実装を解決するために、WebベースのアプリケーションにWindsorIoCコンテナを使用しています。
WebアプリケーションのUIはページで構成され、各ページはポートレットと呼ばれる小さなユニットで構成されます。(それらの概念はウィジェットにいくぶん似ています。)これらのいわゆるポートレットは基本的にWebコントロールであり、実行時にすべてのページに対して個別に構成できます。
アプリケーションにはこれらの組み込みの一部が付属していますが、簡単に拡張できるようにしたいと思います。
このメカニズムがまさにMEFの目的であることがわかりました。そこで、MEFを使用してポートレットを検出するようにシステムを実装することにしました。そして、現在ウィンザーを使っていることもできることに気づいたので、ウィンザーを捨ててMEFを選ぶことにしました。
明らかに、DirectoryCatalogを使用する必要があります。これは、アプリのbinフォルダー内の.dllをスキャンし、必要なものをすべて返します。
StackOverflowのMEFに関するいくつかのチュートリアル、例、およびすべての質問も読みました。MEFを使用する最も簡単な方法は、Glenn Blockがチュートリアルで言及したPartInitializerを使用することであると考えましたが、MEFにはないことに気付きました。実際、それは私がCodePlexからダウンロードしたコードにありますが、別のアセンブリにあり、ソースのみであり、バイナリ形式ではありません。(これは、MEFの一部ではないという意味ですか?それとも、別のプロジェクトに配置する意味は何ですか?)次に、Silverlight用であることに気付いたので、あまり役に立ちません。(または、それを.NET 3.5に対してコンパイルするか、プロジェクトに含める必要があります。これで問題ありませんか?)
だから今私は次のような問題を抱えています:CompositionContainerをアプリケーションのどこに置くべきですか?
もう1つ考慮したいことがあります。アプリの存続期間中に、CompositionContainerを1つだけ使用する必要がありますか、それとも、必要なときに毎回コンテナーを作成する方がよいでしょうか。
c# - MEF: 複数のエクスポートがあり、インポートが 1 つしか必要ない場合はどうすればよいですか?
私はMEFについて頭を悩ませようとしています。わからないことが一つあります。
コントラクトである ISomething という名前のインターフェイスがあり、アプリケーションを含むフォルダーに複数のアセンブリがあり、それらの中に ISomething 実装がいくつあるのか、またはどのアセンブリに含まれているのかわかりません。
MEF を使用するホスト アプリケーションを作成し、ISomething を 1 つだけ取得したい場合、MEF はどの実装を提供するかをどのように決定しますか?
または、一般的な IoC コンテナーと同様に、どの実装を使用する必要があるかをどのように伝えるのでしょうか?
ご回答ありがとうございます。
c# - Managed Extensibility Framework を使用したサンドボックス プラグイン
私は、サードパーティの開発者がプラグインを作成できるアプリケーションに取り組んでいます。Managed Extensibility Framework について少し調べてみましたが、これが正しい方法のようです。
ただし、プラグインがアプリケーションの残りの部分に自由にアクセスできないようにしたい (シングルトンなどを呼び出す) が、いくつかのインターフェイスを介して通信するように制限したい場合、理想的には、各プラグインが他のアクセスなどのさまざまなことに対して許可を "要求" する必要があります。プラグインとユーザーデータ、これを達成する良い方法はありますか?
そうでなければ私が考えることができる唯一のことは、セキュリティ文字列を各メソッドに渡し、コードから地獄を難読化することですが、それは醜い解決策のように思えます:P
c# - MEF + WCF サービス ホスト?
MEF を始めたばかりで、解決できない問題に遭遇しました。(MEF 経由で) DLL を読み込む Windows サービスがあり、各 DLL は WCF サービス ホストです。Windows サービスを実行して DLL を読み込むと、WCF DLL の 1 つが「アクティビティ」を取得するたびに再インスタンス化して、入ってくるデータを処理することを除いて、すべて正常に動作します。これは可能ですか?
c# - MEF と WCF - AppDomain に関する問題
現在、最新のプレビュー (#8) を実行しており、WCF サービスを使用しています。MEF を使用して、WCF サービス ライブラリを読み込みます。ライブラリを読み込むアプリケーションからライブラリの 1 つに対して何らかの操作を行うと、それらの WCF ライブラリの AppDomain は 1 ですが、WCF サービスが通知を受け取ると AppDomain は 2 になることに気付きました。通知を受ける WCF サービスが、MEF 経由で読み込まれたものと同じ (または同じ AppDomain 内) であることを確認する方法はありますか?
基本的に、WCF サービスの構成データを読み取り、データが常にメモリに保存されるようにする必要があります。これにより、通知が届いたときに、メモリ内のデータを使用して、送信された内容を分析することができます。
.net - MEF例外「'SourceProvider'を設定する必要があります。」
.NET4.0ベータ2の新しいSystem.ComponentModel.Composition名前空間で遊んでいます。これはManagedExtensibilityFrameworkとも呼ばれます。
インポートが:をMonkey
インポートする次のC#の例を使用します。Banana
ただし、次のようにサルを作成しようとすると、「このオブジェクトは初期化されていません。プロパティ'SourceProvider'を設定する必要があります。」InvalidOperationException
というメッセージが表示されます。
ここで何が欠けていますか?カタログをCatelogExportProviderでラップせずに直接渡すことができることは知っていますが、上記も機能しないのでしょうか。