Ily*_*kov 9 c# wcf xsd wsdl web-services
我似乎无法找到从具有共享类型的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; }
}
Run Code Online (Sandbox Code Playgroud)
在您的情况下,您可以跳过第一步,从服务 1 生成代理,然后在生成服务 2 代理时使用 svcutil 上的 /r 标志来引用服务 1 代理程序集。
这将确保您的服务 2 代理将使用与服务 1 代理相同的 Foo 实例。
但是,您是否考虑过仅托管具有两个操作的单个服务?这会节省你很多工作。
| 归档时间: |
|
| 查看次数: |
1721 次 |
| 最近记录: |