Dav*_*ier 5 f# wsdl type-providers
从
#r "FSharp.Data.TypeProviders"
#r "System.ServiceModel"
open Microsoft.FSharp.Data.TypeProviders
[<Literal>]
let serviceAddress = "http://localhost/Microsoft/Dynamics/GP/eConnect/mex"
type Dynamics = WsdlService<serviceAddress>
type DynTypes = Dynamics.ServiceTypes.SimpleDataContextTypes
type Address = System.ServiceModel.EndpointAddress
Run Code Online (Sandbox Code Playgroud)
无论我做什么,WSDL类型提供程序都无法消除函数调用的歧义:
let svc: DynTypes.eConnectClient = Dynamics.GeteConnectServiceEndpoint()
let svc2 = (Dynamics.GeteConnectServiceEndpoint : unit -> DynTypes.eConnectClient)()
let svc3 = (Dynamics.GeteConnectServiceEndpoint : Address -> DynTypes.eConnectClient)(Address serviceAddress)
Run Code Online (Sandbox Code Playgroud)
它们都不起作用.
禁用其他端点并仅留下eConnectClient的端点解决了问题,但我甚至不知道我是否可能最终需要其他端点.