を投影します実際の業務を行うために、サービスはリポジトリを使用してデータベースを読み書きします。 これらはすべてAutofac Dependency Injectionを使用しています。 例:コントローラの コンストラクタ種々のサービスを使用循環参照問題は、私は、プロジェクトAにおける上図コントローラアーキテクチャ次の図(PROJECTA) <a href="https://i.stack.imgur.com/EVYZI.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/EVYZI.jpg" alt="enter image description here"></a></p> <p>に示されているC#ウェブAPIプロジェクトのために、プロジェクトAのサービスを使用した
public DKMenuController(ITokenService tokenService, IUserService userservice, IDKMenuService dkMenuService)
{
_tokenService = tokenService;
_dkMenuService = dkMenuService;
_userservice = userservice;
}
次のようにアプリケーションの起動時に、様々なサービスが登録されているDB
public DKMenuService(IRepository repository)
{
this._repository = repository;
}
と通信するための基礎となるリポジトリを使用するサービスのコンストラクタ
this.RegisterType<Repository>().As<IRepository>().InstancePerRequest();
this.RegisterType<DKMenuService>().As<IDKMenuService>().InstancePerRequest();
ここで別のプロジェクト(exa mple ProjectB)はProjectAサービスから呼び出され、ProjectAのリポジトリパターンを使用してDBにデータを保存します。 問題はこのデザインが循環参照につながり、2つのプロジェクトがコンパイルされないことです。 同様の質問がここにあります。How to solve circular reference? ですが、答えが正しいかどうかはそれほど明確ではありません。 アイデア
を必要とせずに
ProjectB
を参照することができます。循環依存がどこにあるのか明確にしてください。 – Enigmativity@Enigmativity - ヘッダーを見ると、2つの_projects_(列)には円があります。 –
@HenkHolterman - どのヘッダ?この図には円はありません。これは、有向非循環グラフです。 – Enigmativity