Я знаю, что были похожие вопросы по этой теме, но я не был полностью уверен, что они решали ту же проблему. Так что для ясности ...
У меня есть библиотека классов, в которой есть пространства имен для типов, бизнес-логики и доступа к данным. Классы в пространствах имен логики и доступа к данным являются статическими и имеют базовые методы crud для заполнения экземпляров типов данными или получения экземпляров типов, которые уже заполнены и выполняют вставки или обновления в базе данных.
Теперь, в дополнение к существующим приложениям, которые напрямую ссылаются на эту библиотеку, я хочу также создать службу WCF, чтобы другие приложения могли использовать объекты и методы таким образом.
Каждый турникет WCF, который я вижу, создает доменные объекты в сервисном проекте, но я не хочу, чтобы мои объекты определялись в двух местах.
Поэтому я подумал, что могу сослаться на сериализацию в моей существующей библиотеке классов и пометить классы типов как [DataContract], а свойства - как [DataMember]. Затем в проекте WCF создайте интерфейсы [ServiceContract] с методами [OperationContract], чтобы сопоставить классы и методы статической логики из существующей библиотеки, которую я хочу предоставить. Затем из проекта WCF создайте ссылку на существующую библиотеку классов и реализуйте интерфейсы WCF, добавив в нее методы, которые вызывают существующие логические методы библиотеки, которые возвращают существующие типы библиотек.
Это хороший шаблон?