ich ein C# web api Projekt, deren Architektur haben wird in dem folgende Diagramm (ProjectA) gezeigt Rundreferenzfragen in C# WebAPI Projekten
In dem obigen Diagramm-Controller im Projekt A die Dienste von Project A um Um den eigentlichen Job auszuführen, verwenden die Services das Repository, um auf der Datenbank zu lesen und zu schreiben. Alle von ihnen verwenden Autofac Dependency Injection. Beispiele: Constructor von Controller, die verschiedenen Dienste
public DKMenuController(ITokenService tokenService, IUserService userservice, IDKMenuService dkMenuService)
{
_tokenService = tokenService;
_dkMenuService = dkMenuService;
_userservice = userservice;
}
Constructor eines Service verwendet, die für die Kommunikation mit dem DB
public DKMenuService(IRepository repository)
{
this._repository = repository;
}
Die verschiedenen Dienste, die zugrunde liegenden Repository verwendet werden registriert, wenn die Anwendung gestartet werden wie folgt
Jetzt möchte ich ein anderes Projekt hinzufügen (benannt in der EXA mple ProjectB), das einfach eine Klassenbibliothek ist und von einem ProjectA-Service aufgerufen wird, wird etwas tun und dann das Repository-Muster von ProjectA verwenden und Daten in der DB speichern. Das Problem ist, dass dieses Design zu zirkulären Referenzen führt und die 2 Projekte nicht kompiliert werden. Es gibt eine ähnliche Frage hier How to solve circular reference? aber die Antwort ist nicht so klar, ob es korrekt ist. Irgendwelche Ideen?
Es gibt keine zirkuläre Abhängigkeit in Ihrem Diagramm. Können Sie bitte klären, wo die zirkuläre Abhängigkeit liegt? – Enigmativity
@ Enigmativität - schauen Sie sich die Header, die 2 _projects_ (Spalten) haben einen Kreis. –
@HenkHolterman - Welche Header? Es gibt keinen Kreis im Diagramm. Es ist ein gerichteter azyklischer Graph. – Enigmativity