Я не могу найти пример создания прокси из WSDL с общими типами, но без каких-либо XSD, чтобы идти вместе с ними. Может ли кто-нибудь отметить это как дубликат и указать мне на пример, пожалуйста?Совместное использование типов WSDL без XSD
Здесь 2 услуги, каждая из которых имеет собственное пространство имен и общий тип. Единственное, что доступно для публики, - это их WSDL, XSD или его .dll нет типа для перехода на wsdl.exe /sharedtypes
или svcutils
, и без него я заканчиваю тем же class Foo
, что я не могу пройти до SetFoo
и class Foo1
.
Лучшее, что я мог придумать генерирует прокси программно и обнаружения дубликатов через CodeDOM, игнорируя DataContract
/WebServiceBinding
пространств имен, но это огромный беспорядок ...
[WebService(Namespace = "http://tempuri.org/FOO1")]
public class Service1 : WebService
{
[WebMethod]
public Foo GetFoo()
{
return new Foo();
}
}
[WebService(Namespace = "http://tempuri.org/FOO2")]
public class Service2 : WebService
{
[WebMethod]
public void SetFoo(Foo foo)
{
}
}
public class Foo
{
public int Bar { get; set; }
}
В качестве определения WSDL определены XSD, определяющие типы. Если они не определены в WSDL, как вы должны использовать эту услугу? –
@hugh Они определены дважды в каждом WSDL, поэтому заданы 'Service1' и' Service2' wsdls. Я не вижу способа генерации прокси для них с общим определением 'Foo', которое может быть передано из' GetFoo' в ' SetFoo'. –
Я понимаю. См. Мой ответ ниже –