我似乎找不到从具有共享类型的 WSDL 生成代理但没有任何 XSD 的示例。任何人都可以将其标记为重复并指出一个例子吗?
这里有 2 个服务,每个都有自己的命名空间和通用类型。唯一可以公开访问的是它们的 WSDL,没有类型的 XSD 或其 .dll 可以传递给wsdl.exe /sharedtypes
或svcutils
没有它,我最终得到相同class Foo
的,我无法传递给SetFoo
and 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; }
}