Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.22.100.180] |
|
Сообщ.
#1
,
|
|
|
Добрый день, господа-специалисты!
Допустим у меня есть 2 библиотеки: коммуникации + логика Логика работает с некоторым интерфейсом коммуникационного объекта(определён в библиотеке логики), например таким: public interface IServiceController { void Login(string _login, string _pass); void Logout(); } Одна из реализаций коммуникационной библиотеки - классы для работы с WCF-сервисом. Соответственно, там создаётся proxy-объект и передаётся в логику, где с ним идёт дальнейшая работа. Для этого в библиотеке коммуникации есть интерфейс сл. вида: [ServiceContract] public interface IController : IServiceController { [OperationContract] new void Login(string _login, string _pass); [OperationContract] new void Logout(); } Всё прекрасно бы работало, но библиотека логики написана на .NET 2.0 и значит, что первый интерфес не может быть размечен для WCF. И логика работает именно с первым интерфейсом. Всвязи с чем выявляется следующая проблема: IController controller = CreateProxy<IController>(); controller.Login("123", "456"); //РАБОТАЕТ IServiceController controller2 = controller; controller2.Login("123", "456"); //НЕ РАБОТАЕТ Поэтому при передаче объекта в логику и попытке вызвать там у него какой-либо метод, поднимается исключение Method Login is not supported on this proxy, this can happen if the method is not marked with OperationContractAttribute or if the interface type is not marked with ServiceContractAttribute. Вопрос: ПАМАГИИИИИИИИТЕЕЕЕЕ!!!! |