1

共通のインターフェイスに基づいてこれらのライブラリでアクションを実行するプロセスによって動的にロードされる個別のクラス ライブラリ/アセンブリに実装ロジックを効率的に分離するための標準的な方法が C#(または cli) にあるかどうか疑問に思っています。

より正確には、メッセージを受信し、これらのメッセージの処理を別のものに委任するサービスを構築しているとします。何かのようなもの:

while(true){
   message = read_message_from_somewhere();
   class_from_another_lib.do_somthing_with_Message(message); 
}

ある種の構成から実行時にクラス ライブラリをロードするプロセスが必要です。ライブラリには、次のようなインターフェイス部分を実装するメインクラスまたはクラスファクトリがあると思います。

ISomePublicIface{
   void do_somthing_with_Message(messageT);
}

これはすべて、アセンブリ内のクラスにある種の注入可能なインターフェイスを実装させ、アプリ構成に行を追加し、無料で大量のものを取得するだけで、やや Java のように感じます。

4

2 に答える 2

6

.NET 4.0 に含まれているManaged Extensibility Framework (MEF)を見てみましょう。MEF は、外部 DLL からコンポーネントを動的にロードおよび挿入できます。

于 2011-08-03T15:19:04.990 に答える