Solução de dependência circular

Nosso projeto atual teve um problema de dependência circular. Nosso assembly de lógica de negócios está usando classes e métodos estáticos de nosso assembly SharedLibrary. A SharedLibrary contém várias funções auxiliares, como uma classe SQL Reader, enumeradores, variáveis globais, tratamento de erros, log e validação.

A SharedLibrary precisa de acesso aos objetos de Negócios, mas os objetos de Negócios precisam de acesso à SharedLibrary. Os antigos desenvolvedores resolveram esse cheiro óbvio de código replicando a funcionalidade dos objetos de negócios na biblioteca compartilhada (muito anti-DRY). Passei um dia agora tentando ler sobre minhas opções para resolver isso, mas estou chegando a um beco sem saída.

Estou aberto à idéia de redesenho da arquitetura, mas apenas como último recurso. Então, como posso ter uma Biblioteca Auxiliar Auxiliar Compartilhada que possa acessar os objetos de negócios, com os objetos de negócios ainda acessando a Biblioteca Auxiliar Auxiliar Compartilhada?

questionAnswers(3)

yourAnswerToTheQuestion