Одна сущность, совместно используемая двумя веб-сервисами?
-
05-07-2019 - |
Вопрос
Я работаю над проектом, где у меня есть 2 веб-сервиса, которым нужен один и тот же объект.Эти 2 веб-службы находятся на одном сервере, поэтому в серверной части они используют одни и те же классы.
На стороне интерфейса мой код потребляет и то , и другое веб-службы и видит сущности из обеих служб как отдельные (в разных пространствах имен), поэтому я не могу использовать эту сущность в обеих службах.
Кто-нибудь знает способ, позволяющий этому работать в .NET 2.0?
Я сделал это со своей сущностью:
[XmlType(TypeName = "Class1", Namespace = "myNamespace")]
public class Class1
{
public int field;
}
Надеясь, что моя IDE каким-то образом "узнает", что класс одинаков в обеих веб-службах, чтобы он не создавал отдельные объекты для обоих классов, но безуспешно.
Возможно ли это сделать с помощью веб-служб .NET 2.0?
Решение
Я думаю, что вы не можете сделать это изнутри VS, но вы можете вручную использовать wsdl.exe
утилита, подобная этой:
wsdl.exe /sharetypes http://localhost/MyService1.asmx?wsdl http://localhost/MyService2.asmx?wsdl
Обратите внимание на /sharetypes
опция, которая включает функцию совместного использования типов.Эта функция создает один файл кода с единственным определением типа для идентичных типов, совместно используемых различными службами (пространство имен, имя и сигнатура передачи данных должны быть идентичными).
Подробная информация:
Другие советы
Я не уверен в деталях реализации с .NET 2.0, но я верю, что вы хотите сделать, это поместить общие классы в отдельный XSD-файл и ссылаться на него из ваших двух WSDL. Таким образом, общие типы имеют одинаковое пространство имен между двумя службами.
Теперь, как вы это делаете в .NET 2.0, я не могу дать вам подробности о ...
Можете ли вы проверить пространство имен сущности? Убедитесь, что он одинаков в обоих веб-сервисах. Р>