在WCF之间传递对象

时间:2011-05-20 16:16:24

标签: vb.net wcf

我有一个ASP应用程序,它调用HTTP WCF服务,该服务调用TCP WCF服务(所有服务器都在不同的服务器上)。我最终试图在三者之间传递一个类对象。

我发现我无法直接在HTTP WCF中执行此操作,即使我的类对象在BOTH WCF中的定义相同。像这样:

Public Function CallOtherFunction(ByVal ThisClass as MyClass)
Dim RetVal as Boolean

     RetVal = CallMyOtherWCFFunction(ThisClass)

End Function

相反,我必须:

Public Function CallOtherFunction(ByVal ThisClass as MyClass)

Dim RetVal as Boolean
Dim MyOutgoingClass as MyOtherWCF.MyClass

     MyOutgoingClass.MyString = ThisClass.MyString
     RetVal = CallMyOtherWCFFunction(MyOutgoingClass)

End Function

我的对象相当大,说它们有很多属性。任何方式都不必在我的调用函数中声明一个新变量,所以我的代码可以更容易一点(如第一个例子)?

谢谢, 杰森

1 个答案:

答案 0 :(得分:5)

你不能直接传递它,因为它们是两种不同的类型。但是,您可以在共享程序集中声明您的数据协定(由三个项目使用,或者至少由HTTP和TCP服务使用),在添加服务引用以在HTTP服务中创建代理时,您指定你想“重用引用程序集中的类型”。这样它应该在所有项目中使用相同的类型。