Это возможно, и это одна из функциональных возможностей, которую предоставляют такие архитектуры, как Onion architecure / N-layer architecure / clean Architecture.
Просто добавьте WebApi csproj и Wcf csproj к вашему решению. Затем добавьте к своему решению businesslayer csproj. Затем просто добавьте ссылку на свой проект businesslayer в свой проект WebApi & Wcf.
Тогда просто убедитесь, что все бизнес-логики c сохранены в классах бизнес-уровня, и вы готовы к go.
С архитектурной точки зрения у вас будет следующая структура
- Уровень решения (проект WebApi & Wcf) [оба проекта зависят от уровня бизнес-логики]
- Бизнес-логика c layer (Business level csproj) [не зависит ни от чего]
Если вы также читаете данные из базовых баз данных, других API или файлов, я бы также предложил добавить нижний уровень, называемый уровнем доступа к данным. (еще один csproj), где вы делаете все доступ к данным, как запросы к базам данных.
Тогда у вас будет что-то похожее на это (стрелки являются зависимостями):
Одно примечание: если вы хотите использовать Wcf вместе с. Net Core WebApi просто убедитесь, что BusinessLayer.csproj является стандартным проектом. net, так что вы можете запустить оба. Это потому, что WCF работает на. Net Framework.