Из того, что вы описываете, звучит так, будто сохранение вашей существующей DLL, т. Е. Прямой доступ к БД, лучше всего соответствует вашим потребностям.Наличие службы WCF ничего не добавляет, если в случае сбоя вы все равно просто используете DLL.
В идеале вы бы полностью воспользовались услугой WCF и предложили бы какую-то избыточность для решения любых возможных проблем с обслуживанием.Кроме того, использование службы будет означать, что вам не придется иметь дело с какими-либо обновлениями / развертываниями DLL.
Но, исходя из вашего вопроса, кажется, что возникнут некоторые реальные проблемы, если служба не будетдоступны, так что просто сделайте с DLL.
РЕДАКТИРОВАТЬ: Просто прочитайте последнюю часть вашего вопроса, и я не думаю, что это возможно.Код прокси для доступа к сервисам генерируется при добавлении ссылки на ваш проект.Вид «динамической» информации, которая вам нужна, на самом деле требует службы.
РЕДАКТИРОВАТЬ: Как продолжение моего комментария ниже, вы можете проверить это, создав DLL и класс, назовем его Class1.Затем создайте службу WCF с методом, который будет возвращать Class1.Создайте клиентское приложение и добавьте ссылку на сервис.Если вы посмотрите на код, сгенерированный прокси, то увидите (надеюсь ... я думаю об этом, когда набираю :)), что метод возвращает Class1, но при компиляции он не сможет найти Class1.Это связано с тем, что Class1 не имеет DataContractAttribute, который автоматически генерировал бы Class1 на клиенте.Итак, вы должны распространять совместно используемую DLL клиенту.Теперь, когда метод возвращается и WCF пытается воссоздать Class1, он будет использовать локальную версию в общей DLL.Ваша другая DLL, которая уже будет на клиенте, будет использовать ту же общую DLL.