Я пытаюсь выяснить, есть ли лучший способ выполнить то, что у меня есть ниже.
У нас есть несколько (12) веб-сервисов SOAP от одного поставщика. Таким образом, все вызовы одинаковы (например, getclaim (), editclaim (), addclaim () и т. Д. И т. Д.)
ех. URL двух веб-сервисов
https://trustonline.delawarecpf.com/tows/webservicefk.svc
https://trustonline.delawarecpf.com/tows/webservicepcc.svc
Но у нас есть все вызовы ws в отдельных файлах (супер избыточных), по одному для каждой веб-службы.
Поэтому я пытаюсь понять, как объединить их в один файл.
Я думаю, что может сделать что-то подобное ниже, где у меня есть оператор switch или if, который определяет веб-сервис и объект User из каждого сервиса, но это выглядит немного не ориентированным на obj, поэтому я смотрю, если есть лучший способ?
Вот что я сейчас делаю, но ищу лучший способ.
// initializing the web services and fetching some data at the end
public void InitWebService(string webserviceUrl, int webServiceType)
{
BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.Transport);
EndpointAddress endpoint = new EndpointAddress(webserviceUrl);
ChannelFactory channelFactory = null;
switch(webServiceType)
{
case 1:
channelFactory = new ChannelFactory<WebServiceAWI>(binding, endpoint);
break;
case 2:
channelFactory = new ChannelFactory<WebServiceBG>(binding, endpoint);
break;
etc.
}
var webservice = channelFactory.CreateChannel();
var user = null; // CAN'T HAVE NULL HERE
switch(webServiceType)
{
case 1:
user = WebservicereferenceA.User();
break;
case 2:
user = WebserviceReferenceB.User();
break;
etc.
}
user.UserName = webservice.EncryptValue("someone");
user.Password = webservice.EncryptValue("password");
// get some data
var result = webservice.AttorneysGet(user);
}