この質問に関するちょっとした背景の話:
地元のバー用に POS システムを作成していますが、これをプラグイン対応にしたいと考えています。この特定の問題については、次のシナリオを使用します。
名前が示すように、現在の領収書、VAT などの製品に関連するすべての計算を行う電卓クラスがあります。私たちが使用するこれらの特別なコインを使用してください。計算機は、領収書 (コンストラクターで渡される) のすべての製品を単純にループ処理して、合計金額を計算します。レシート クラスには、そこにあるすべての製品オブジェクトのリストがあります。組み込みの製品クラスには、コインに関連するメンバーはありません。これらは、プラグイン アセンブリ内の別の製品クラスにあります。
ここでの質問は、製品に使用する正しいクラスをメイン プログラムに動的に選択させるにはどうすればよいかということです。
すべてのプラグインをリストまたはディクショナリにロードし、それらをループして、製品クラスのオーバーライドが存在するかどうかを確認してから使用することを考えていましたが、オプションではない何らかの共通インターフェイスが必要です。私はPHPでそれを行う方法を正確に知っていますが、実行/インストール時にソースを編集/更新されたものに置き換えることができます.
前もってありがとう、トム。
編集:問題を単純化するには: 既存のアプリケーションでメソッドの名前/デリゲートなどをハードコーディングすることなく、外部プラグイン アセンブリに組み込みアセンブリを新しいメソッドで拡張させることは可能ですか?