2010-03-31 2 views
1

Я пытаюсь создать набор веб-служб WCF для существующего веб-сайта, который использует веб-сайт вместо проекта веб-приложения. Я хотел бы создать DLL, которую я запишу в папку Bin вместо того, чтобы писать весь свой код внутри каталога App_Code. В идеале я хочу создать проект и ссылаться на него с веб-сайта, но я столкнулся с трудной ситуацией.Как обойти круговые ссылки в веб-проекте Visual Studio?

DLL должен будет ссылаться на конфигурацию и другие DLL-файлы, расположенные внутри папки bin на веб-сайте, что вызывает круговую ссылку. Как мне обойти эту проблему?

ответ

1

Почему это круговая ссылка, если вы ссылаетесь на внешние DLL? У вас все еще есть ссылки на конфигурацию без каких-либо ссылок на dll вашего скомпилированного сайта. Кроме того, вам нужно будет получить его из файлов Temp ASP .Net, поскольку сайты компилируются по запросу.

Если вы действительно ссылаетесь на какой-либо код с вашего сайта, почему бы не поместить его в свою недавно созданную библиотеку и не ссылаться на этот код с вашего сайта?

+0

Чтобы уточнить, служба, которую я создаю, будет запускаться в папке веб-сайта. Ему понадобится доступ к текущему db, пользователю и т. Д. Если я поместил его во внешний проект, мне придется мучительно воссоздать среду, которая уже существует. Я думаю, мой вопрос: как мне обойтись, чтобы написать весь мой код внутри App_Code? –

+0

Я не вижу проблемы. Вы все равно можете использовать ту же конфигурацию, ресурсы и т. Д. Из внешней dll, если она находится внутри того же AppDomain, что и ваш веб-сайт. –

+0

Мозг пердеть с моей стороны (BFOMP)! Теперь вы имеете полный смысл, я думал о ссылках на весь проект веб-сайта из проекта dll вместо отдельных DLL. Я знал об этом, но, думаю, проект веб-сайта сделал все это концептуально мимолетным. Это связано с тем, что веб-проекты не работают, как обычные проекты VS. Веб-проекты должны быть запрещены и доступны только по рецепту. –

0

Циркулярные ссылки никогда не могут быть построены из соло. Я бы либо разрушил два проекта, либо использовал отражение, чтобы нарушить круговую зависимость.

0

Скопируйте страницы, которые вызывают циклические ссылки в другую папку, и скомпилируйте приложение. Этим решением я решил свою проблему.

Смежные вопросы