関連する一連のプラグインを作成しています。各プラグインは異なるエンティティ用です。各プラグインには独自のアセンブリが必要ですか? Visual Studio を使用していて、同じソリューション内に 2 つ目のプロジェクトを作成しましたが、登録ツールに新しいステップが表示されません。
ありがとう
関連する一連のプラグインを作成しています。各プラグインは異なるエンティティ用です。各プラグインには独自のアセンブリが必要ですか? Visual Studio を使用していて、同じソリューション内に 2 つ目のプロジェクトを作成しましたが、登録ツールに新しいステップが表示されません。
ありがとう
できますが、する必要はありません。それはほとんどあなたの設計上の決定です。いくつかのクラスがすべて実装されているかどうかを検討してくださいIPlugin
public class MyFirstPlugin : IPlugin
{
//implemented as per usual
}
public class MySecondPlugin : IPlugin
{
//implemented as per usual
}
その DLL をプラグイン登録ツールに登録すると、次の構造が表示されます。
- Server
- DLL
- MyFirdtPlugin
- MySecondPlugin
その後、必要に応じて各プラグインにステップを追加できます。
別の方法は、DLL ごとに 1 つのプラグインを用意することです。
- Server
- DLL1
- MyFirstPlugin
- DLL2
- MySecondPlugin
やり過ぎのように思えることは認めざるを得ませんが、ソリューションの使用方法にも依存する可能性があります。
glosrob の回答に加えて、プラグイン登録ツールを使用してプラグインを登録していると思います。その場合、新しいプラグインを同じ dll に追加した後、プラグイン dll 自体を登録ツールで更新して、作成した新しいプラグイン メソッドを登録できるようにする必要があります。
はい、異なるクラス ライブラリ プロジェクトで各プラグインを作成できますが、これは良い方法ではありません。すべてのプラグインを 1 つのクラス ライブラリにまとめたいと思います。
ファイル ダイアログからアセンブリを選択した後、[アセンブリのロード] ボタンをクリックして、IPlugin インターフェイスを実装するすべてのクラスをロードする必要があることに注意してください。
質問に答えるには - いいえ、新しいプラグインをそれぞれ新しいアセンブリに含める必要はありません。
詳しく説明すると、すべてのプラグイン コードを 1 つのプロジェクトと 1 つのファイルに入れることは技術的に可能です。
警告するために-上記はすべてのifsとbutsで管理するのは悪夢になるため、これはできるがすべきではないことの良い例です.
提案する - 私は通常、各エンティティのプラグインに対して個別のプロジェクトを持ち、スイッチを使用してすべてのメッセージを処理します。場合によっては、2 つまたは 3 つの集会を開くこともありますが、その時が来たらわかるでしょう。通常、1 つの DLL で十分です。