我没有通过代理连接,所以我无法实际测试它,但我认为您应该能够使用本地 WSDL 文件在设计器中加载类型提供程序。
尝试下载 WSDL 模式(从http://msrmaps.com/TerraService2.asmx?WSDL)并将其保存到本地文件(例如C:\temp\terra.wsdlschema
)。然后你应该可以写:
#r "System.ServiceModel.dll"
#r "FSharp.Data.TypeProviders.dll"
open Microsoft.FSharp.Data.TypeProviders
type Terra = WsdlService< ServiceUri="N/A", ForceUpdate = false,
LocalSchemaFile = @"C:\temp\terra.wsdlschema">
let terra = Terra.GetTerraServiceSoap()
terra.GetPlaceList("New York", 1, false)
该ServiceUri
参数似乎是必需的,但如果添加ForceUpdate=false
. 它应该只需要缓存的 WSDL 文件。我不完全确定如何配置运行时以使用您的配置文件设置,但我确信这可以通过某种方式完成(它可以正常工作,或者您可以将某些内容传递给该GetTerraServiceSoap
方法)。
遗憾的是,类型提供程序并不静态知道(在设计时)在哪里寻找配置文件,所以它忽略了它。