我正在使用FSHARP WSDL类型提供商生成客户端类以消费WCF服务。但是,我无法重复使用服务器端使用相同数据合同的不同服务之间的相同数据合同。
我阅读了一些使用SVCUTIL讨论C#WCF项目的材料,但是在使用WSDL类型提供商机制时如何实现这一目标?
这是我问题的一个例子:
因此,以下两个不同的服务无法共享以下数据对象(如:
)[<DataContract>]
type QuantityUnit () =
[<DataMember>] member val Quantity = 0. with get, set
[<DataMember>] member val Unit = "" with get, set
使用此数据对象:
[<ServiceContract>]
type IQuantityUnitService =
inherit IDataProviderServiceContract
[<OperationContract>]
abstract member NewQuantityUnit: quantity: float * unit: string -> QuantityUnit
和
[<ServiceContract>]
type ICalculationService =
inherit IDataProviderServiceContract
[<OperationContract>]
abstract member CalculateQuantityUnit: quantity: QuantityUnit -> QuantityUnit
但是两种服务的生成类数量,必须为每种服务生成,并且不能从一个服务传递到下一个服务。
鉴于这个问题没有收到任何回答,与此同时,我无法提出解决方法,我认为实际上是,假设实际上,在之间,重复使用类型不可能在FSHARP中实施的WCF服务。因此,由于其他原因,我切换到ServiceStack。最值得的投资。这要简单得多,更快且重用是一个非问题,因为您可以直接引用并重用数据合同。