Мы публикуем библиотеку классов, которая должна оставаться совместимой с .NET 2.0. Однако мы также хотели бы использовать эту библиотеку классов для проектов на основе WCF.
Чтение, например expose-object-from-class-library-using-wcf предлагает подход к использованию библиотек классов 2.0 путем создания объектов DataContractSurrogate для сопоставления классов 2.0. Тем не менее, наша иерархия объектов богата и глубока, и это было бы утомительно и трудно поддерживать.
Поскольку мы контролируем исходный код, я ищу более простой подход.
Одна мысль состоит в том, чтобы добавить атрибут DataConract к исходному коду и предоставить «пустую» реализацию DataContractAttribute, когда построено решение, ориентированное на среду выполнения 2.0, и использовать реализацию System.Runtime.Serialization, когда решение строится с целью 3.0 и более новые среды выполнения. Это может быть достигнуто путем ручной настройки ссылок между сборками.
Есть ли лучший способ реализовать этот подход?
Есть ли лучший подход?