2011-12-25 2 views
1

Я пытаюсь настроить дуплексный сервис. Я создал 2 интерфейса: первых - интерфейс, который сервер реализовать:auto generate callback class at duplex/WCF

[ServiceContract(CallbackContract = typeof(IBackUpServiceCallback))] 
public interface IBackUpService 

с некоторыми методами, которые осуществить с помощью подачи и второй:

public interface IBackUpServiceClient 

, который держит методы что сервер должен использовать при обратном вызове клиента. Орудие имя класса

BackUpServiceCallBack : IBackUpServiceClient 

находится на стороне клиента.

Проблема есть - после того, как я добавляю услугу - компилятор автоматически генерирует:

interface IBackUpServiceCallback 

и требуют, чтобы я его реализовать. и у меня есть 2 интерфейса обратного вызова. первый, который я реализовал (BackUpServiceClalBack) на стороне клиента, а второе имя: IBackUpServiceCallback - и я не могу его контролировать (клиент Url является «tempuri ..»)

и даже если BackUpServiceClalBack реализует IBackUpServiceCallback - это не входит в метод реализации во время выполнения.

Я работаю с wsDualHttpBinding Binding.

Любые идеи?

ответ

2

я понять, что я не должен делать «добавить ссылку на службу» на всех. и becuse клиенту знать это интерфейс во время разработки я могу использовать его.

Теперь я не буду иметь genareted код Calss. а InstEd доверенности я буду использовать:..

private DuplexChannelFactory<IBackUpService> factory; 
    private IBackUpService _proxy; 
    InstanceContext t = new InstanceContext(implementClass); 
    factory = new DuplexChannelFactory<IBackUpService>(t, "nameOfBinding"); 

    _proxy = factory.CreateChannel(); 

и связывание себя будет во время выполнения

+1

Поздравляю с исправлением Когда вы можете, пожалуйста, отметьте свой ответ, как «принято» с помощью галочки влево. Это покажет другим t ваша проблема решена. Приветствия ~ –