Один объект совместно используется двумя веб-службами? - PullRequest
3 голосов
/ 06 октября 2008

Я работаю над проектом, в котором у меня есть 2 веб-сервиса, которым нужен один и тот же объект. 2 веб-службы находятся на одном сервере, поэтому на бэкэнде они используют одни и те же классы.

На внешней стороне мой код потребляет обе веб-службы и видит сущности обеих служб как отдельные (в разных пространствах имен), поэтому я не могу использовать сущность в обеих службах. *

Кто-нибудь знает способ разрешить это работать в .NET 2.0?

Я сделал это с моей сущностью:

[XmlType(TypeName = "Class1", Namespace = "myNamespace")]
public class Class1
{
    public int field;
}

Надеюсь, что моя IDE каким-то образом "узнает", что класс одинаков в обеих веб-службах, так что он не будет создавать отдельные сущности для обоих классов, но не повезло.

Возможно ли это сделать с помощью веб-служб .NET 2.0?

Ответы [ 3 ]

4 голосов
/ 06 октября 2008

Я думаю, что вы не можете сделать это изнутри VS, но вы можете вручную использовать утилиту wsdl.exe, например:

wsdl.exe /sharetypes http://localhost/MyService1.asmx?wsdl http://localhost/MyService2.asmx?wsdl

Обратите внимание на параметр /sharetypes, который включает функцию совместного использования типов. Эта функция создает один файл кода с определением одного типа для идентичных типов, совместно используемых различными службами (пространство имен, имя и проводная подпись должны быть идентичны).

Подробнее:

1 голос
/ 06 октября 2008

Я не уверен в деталях реализации с .NET 2.0, но я верю, что вы хотите сделать, это поместить общие классы в отдельный XSD-файл и обратиться к нему из ваших двух WSDL. Таким образом, общие типы имеют одинаковое пространство имен между двумя службами.

Теперь, как вы делаете это в .NET 2.0, я не могу дать вам подробности о ...

0 голосов
/ 06 октября 2008

Можете ли вы проверить пространство имен сущности? Убедитесь, что он одинаков в обоих веб-сервисах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...