Есть три веб-службы, которые мне нужно вызвать, чтобы выполнить некоторую работу. Все они принимают объект (разные объекты) в качестве входного параметра и объект (разные объекты) в качестве выходного параметра. См. Таблицу базы данных ниже:Динамически создавать классы
CREATE TABLE WebServices (id int identity not null, webaddress varchar(50), classname varchar(30), inputParameter varchar(30), outputparameter varchar(30), function varchar(30))
INSERT INTO WebServices (classname, webaddress, inputparameter, outputparameter,function) values ('WebService1', 'http://localhost/webservice1.asmx', "object1", "object2", "function1")
INSERT INTO WebServices (classname, webaddress, inputparameter, outputparameter,function) values ('WebService2', 'http://localhost/webservice2.asmx', "object3", "object4", "function2")
INSERT INTO WebServices (classname, webaddress, inputparameter, outputparameter,function) values ('WebService3', 'http://localhost/webservice3.asmx', "object4", "object5", "function3")
В коде я бы построил классы из значений в базе данных. Возможно ли это? Я верю, что смогу сделать это с отражением.
В качестве альтернативы я хотел бы создать три новых класса обычным способом и использовать завод, чтобы вернуть соответствующий класс следующим образом:
If id=1 then
return new WebService1
ElseIf id=2 then
return new webservice2
ElseIf id=3 then
return new webservice3
End If
Я блуждающий, какой вариант лучше.
Спасибо +1. Веб-службы разрабатываются сторонними компаниями. Я использую их для удаления информации из своих баз данных (которые являются Oracle или SQL Server). Я посылаю инструкцию для удаления идентификатора 1, и веб-служба удаляет все, что связано с ID 1. Веб-службы принимают разные объекты и возвращают разные объекты. Изменит ли это ваш ответ? – w0051977
@ w0051977 На самом деле, я неправильно понял ваш вопрос. Я думал, что вы пишете веб-сервисы и динамически создаете объекты, которые возвращались. Теперь это немного больше. Используют ли веб-службы SOAP-форматирование или бинарное форматирование .NET? Если они используют форматирование SOAP, то я считаю, что у вас есть большой контроль над форматированием классов, что является интересным вариантом. –
Я бы рекомендовал потратить некоторое время на изучение прокси-классов (кода дизайнера), которые автоматически генерируются веб-ссылкой. Вам не нужно использовать автоматически созданные классы прокси. Вы можете написать свои собственные клиентские классы, используя все те же базовые инструменты инфраструктуры, что даст вам гораздо большую гибкость. –