私はC#で書かれた.net Webサイトを持っており、他の開発者が使用できる機能を作成します。だから私はいくつかのデフォルトの実装を作り、開発者はいくつかのメソッドを上書きすることができます
例:クラスがShoppingCart
あり、Product
クラスの商品に、ショッピングカートがカートの合計価格を計算するためgetProductPrice
のメソッドを呼び出すメソッドがあります。getProductPrice
ShoppingCart
とはProduct
同じプロジェクトにあり、開発者に.dllを提供して、ソースコードを変更できないようにして、後でアセンブリを更新できるようにします。
したがって、他のプロジェクトを作成し、製品クラスを拡張してメソッドを上書きし、getProductPrice
独自のロジックを実装できるようにする必要があります。問題は、ショッピングカートが拡張メソッドを呼び出さず、元のメソッドを呼び出すことです。
開発者向けにすでに拡張プロジェクトを作成し、ショッピングカートが拡張メソッドを呼び出す場合、拡張製品には製品への参照が必要であり、ショッピングカートには拡張製品への参照が必要であるため、循環参照があります。
同じアセンブリ内でのみパーシャルを使用できるため、パーシャルクラスも機能しません
誰か提案がありますか?
前もって感謝します。