Нет ничего плохого в том, что в вашем веб-проекте есть ссылка на DAL, если вы непосредственно не вызываете эту сборку.Но если вам неудобен такой подход, вы можете использовать Реестр на вашем бизнес-уровне, и есть типы регистров для DAL.Поскольку веб-уровень в любом случае должен иметь ссылку на бизнес-уровень, вы можете использовать этот реестр из бизнес-уровня при запуске веб-приложения
Вот пример кода
Класс реестра вваш слой Bsns
public class BusinessRegistry:Registry
{
public BusinessRegistry()
{
For<IDALInterface1>().Use<DALImpl1>();
}
}
и в методе запуска приложения
var container = new Container(x => x.AddRegistry(new BusinessRegistry()));