C # Основной проект и ссылки на дочерний проект - PullRequest
3 голосов
/ 30 июля 2010

Использование Visual Studio 2008:

Внутри решения есть основной проект (Project1), в том же решении есть другие проекты (эти проекты являются шаблонами Excel 2007 Workbook).Эти другие проекты должны ссылаться на классы и объекты в Project1, а Project1 должен иметь возможность доступа к проектам Workbook.

В настоящее время у меня есть то, что другие проекты зависят от Project1, и ссылкадобавлен в другие проекты для Project1.

Это правильный способ сделать то, что я пытаюсь сделать, или есть другой способ?

1 Ответ

8 голосов
/ 30 июля 2010

У вас не может быть двух проектов, зависящих друг от друга (это совершенно логично; какой проект должен быть построен первым?). Вы должны переместить части в Project1, которые необходимы для проектов Project1 и Workbook, в отдельный проект, на который могут ссылаться как Project1, так и проекты Workbook.


Обновление
Есть несколько различных способов справиться с этой ситуацией, и, не зная деталей вашего приложения, я не могу дать какое-либо конкретное решение. Но один из способов - использовать внедрение зависимостей . Вместо того, чтобы проект Workbook имел жесткую зависимость от кода в Project1, вы можете извлечь интерфейс для этой функции. Этот интерфейс размещен в другом проекте, на который могут ссылаться как Project1, так и проект Workbook.

Тогда я предполагаю, что Project1 создаст экземпляры типов в проекте Workbook. Это означает, что вы должны изменить конструкторы этих типов, чтобы иметь параметр, если этот тип интерфейса. Project1 будет содержать реализацию интерфейса, который он будет передавать типам проектов Workbook при их создании.

Таким образом, код проекта Workbook может использовать код из Project1 без ссылки на него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...