IPaymentServiceを使用してクレジット カードの支払いを処理するアプリケーションがあります。適切な実装 (CreditCardPaymentComponentまたはインターフェイスCheckPaymentComponentを実装するその他のもの) は、 ASP.NET プロバイダー モデルを使用しIPaymentServiceてアプリケーションに挿入されます。PaymentProvider
また、これらのコンポーネントは、 にアクセスできないさまざまなアプリケーションで再利用できるようにする必要がありますPaymentProvider。
IPaymentService問題は、インターフェースをどこに置くかです。サービスを使用する必要があるアプリケーションが複数あるため、アプリケーション内に配置することはできません。このインターフェイスを実装するサービスが複数あるため、サービス内に配置することはできません。インターフェイスを独自のプロジェクトに配置するのは好きではありません。参照をどこにでも追加する必要があるからです。別の解決策はありますか?
編集:明確にするために、プロバイダー モデルを使用するポイントは、他の開発者をサポートできるようにすることです。たとえば、CustomPaymentComponentどの実装を実装IPaymentServiceし、アプリとシームレスに動作するかを書くことができます。私は@Frazellの答えに傾いていますがIPaymentService、sと同じアセンブリを配置することにマイナス面があるかどうか疑問に思っていPaymentComponentますか? このシステムの を開発する必要があるとしたらCustomPaymentComponent、何が最も理にかなっていますか?