Я развертываю клиентское приложение на мобильный ноутбук, который настроен на использование одного из двух сетевых серверов. Сетевые серверы идентичны, но с разными IP-адресами, поскольку каждый из них находится в другом офисе.Как скомпилировать тип класса динамически только один раз?
Когда клиентское приложение сначала запускается, ему необходимо определить только один раз, в каком офисе он находится, и, следовательно, какой dataservice для подключения. Таким образом, используя IP-адрес клиентской машины, я хотел бы сделать что-то вроде этого:
internal TYPE??? dataservice = new ResolveDataService();
NovaDataServiceClient ResolveDataService()
{
if (localip == xxx.xxx.xxx.xxx)
{
retrun new DataService.NovaDataServiceClient();
}
else
{
return new LibraryWebService.NovaDataServiceClient();
}
}
Кроме того, поскольку он имеет только сделать один раз, будет предпочтительнее статический конструктор. Но реальная проблема заключается в том, что пространство имен «DataService» и «LibraryWebService» были даны Add Service Reference проекта клиента, так как в коде выше
internal TYPE??? dataservice
Тип не известно до ResolveDataService называется.
Как это делается правильно? Спасибо
Как вы можете указать конечную точку в конструкторе клиента? –
@AlanWayne - клиент имеет конструктор, который берет строку с именем конфигурации конечной точки. – shf301