У меня есть проект-обертка, который я создал для общения со сторонним API.
В другом проекте давайте назовем его MyBusinessLayer.csproj. Он использует этот API, добавив проект-оболочку в качестве ссылки на проект, чтобы он мог использовать различные классы для вызова методов API через HttpRequest / HttpResopnse.
Теперь мне нужно выполнить массовое обновление, вызвав класс-оболочку UpdateRequest.cs и перебрав каждую из записей в нашей базе данных, и используя некоторые поля из каждой из этих записей, чтобы вызвать API-интерфейс для обновления каждой записи.
Проблема в следующем:
1) Я хочу создать как BulkUpdateRequest.cs в моем проекте оболочки.
2) Проблема в том, что он должен был бы взять общий список объектов в конструктор. Этот общий список объектов (записей, которые я извлекаю из нашей базы данных), .cs объекта находится в MyBusinessLayer.csproj, так как он представляет таблицу и экземпляр каждой записи для этой таблицы в моей БД. Если я отправлю общий список этих объектов в мою оболочку. Класс BulkUpdate.cs, который выполняет зацикливание и отправку запроса на обновление всех этих записей в общем списке, я только что ввел циклическую ссылку, потому что MyBusinessLayer.csproj ссылается на MyWrapperProject.csproj. А затем MyWrapperProject.csproj ссылается на класс в MyBusinessLayer.csproj, поскольку он принимает список экземпляров универсальных объектов, которые представляют записи в нашей БД.
Итак, я думаю, как лучше всего избежать циклической ссылки? Я думаю, что вместо этого я мог бы создать логику BulkUpdate в MyBusinessLogic.csproj, и таким образом я просто ссылаюсь на UpdateRequest.cs и выполняю цикл в каком-то классе, который создаю в MyBusinessLayer.cs, и использую только класс UpdateRequest.cs из нашей оболочки. проект и не отправлять какие-либо классы MyBusinessLayer в этот проект оболочки.
Надеюсь, это имеет смысл ...