Проблема с проектом .NET 2.0, использующим DLL 3.0, которая реализует службы WCF - PullRequest
0 голосов
/ 14 июня 2010

Я создал клиент для доступа к моим службам WCF в одном проекте, и все классы, которые работают со службами, наследуют этот класс:

public abstract class ServiceClient<TServiceClient> : IDisposable where TServiceClient : ICommunicationObject

В этом классе я делаю такие вещи, как удаление, ведение журнала при вызове клиента и т. Д. Некоторые общие вещи, которые обычно делают все классы обслуживания.

Все работало нормально, пока я не получил задачу реализовать это на старой системе. Я попал в проблему, когда использовал этот проект (DLL) в другом проекте, который не может ссылаться на System.ServiceModel (так как это старое программное обеспечение .NET 2.0, которое я до сих пор поддерживаю, и о его обновлении до 3.0 не может быть и речи). Здесь, если я опускаю where TServiceClient : ICommunicationObject, тогда проект может быть собран, но ServiceClient не может использовать, например, client.Close() или client.State

Итак, мое единственное решение - удалить оператор where и переписать классы обслуживания?

Ответы [ 2 ]

1 голос
/ 14 июня 2010

Если вы не можете обновить этот проект до 3.0, это (или класс-обертка), кажется, ваш единственный вариант.

0 голосов
/ 14 июня 2010

Что мешает вам обновиться? 3.0 на самом деле не новая версия фреймворка, это просто некоторые дополнительные библиотеки DLL. Ваш код 2.0 будет работать, как и прежде, с использованием тех же библиотек .net.

...