Я создаю игру на линкорах в C #.для этой игры у меня в настоящее время есть 3 проекта:
- Приложение WPF, которое представляет клиента
- Приложение ASP.NET MVC, которое функционирует как лобби, где клиенты входят в систему и начинают игру
- Служба WCF, в которой размещаются оба приложения для связи друг с другом.
В приложении WPF и MVC для службы создается ссылка на службу.WCF сервис.Однако ссылка на службу выглядит по-разному в обоих приложениях.Кстати, служба также реализует службу обратного вызова.
В приложении WPF я могу просто создать клиент службы и добавить текущий контекст экземпляра в качестве экземпляра, где служба обратного вызова вызывается как:
var instanceContext = new InstanceContext(this);
lobbyserviceClient = new LobbyServiceClient(instanceContext);
И служба работает нормально.
Однако в приложении MVC ссылка на службу имеет совершенно разные конструкторы, из которых ни один из них не работает нормально. Ниже приведен пример файла ссылки:
public LobbyServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) :
this(new LobbyServiceClientCallback(), binding, remoteAddress)
{
}
private LobbyServiceClient(LobbyServiceClientCallback callbackImpl, System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) :
base(new System.ServiceModel.InstanceContext(callbackImpl), binding, remoteAddress)
{
callbackImpl.Initialize(this);
}
Кто-нибудь сталкивался с этой проблемой раньше или, возможно, видит что-то не так и знает решение.
ps Также при попытке использовать первый конструктор, как показано выше.В моем пространстве имен system.servicemodel доступно только BasicHTTPBinding, где, как и в службе WCF, используется WSDualHttpBinding, поэтому при попытке использовать этот конструктор выдается ошибка