兵GeocodeService userState使用自定义附加参数(Bing GeocodeSer

2019-09-21 21:39发布

在我的Windows Phone 7.1应用程序,我要送消耗兵地理编码服务(使用地址的请求: http://dev.virtualearth.net/webservices/v1/geocodeservice/geocodeservice.svc/mex , 没有设置选项Always generate message contracts在我的服务引用设置)。

我的要求是这样做:

BingMapGeoCodeService.GeocodeRequest request = new BingMapGeoCodeService.GeocodeRequest();

request.Options = new BingMapGeoCodeService.GeocodeOptions()
{
    Filters = new ObservableCollection<BingMapGeoCodeService.FilterBase>()
    {
        new BingMapGeoCodeService.ConfidenceFilter() { MinimumConfidence = BingMapGeoCodeService.Confidence.High}
    }
};

request.Credentials = ( ...my credentials... )

request.Address = new BingMapGeoCodeService.Address()
{
    AddressLine = String.IsNullOrEmpty(address) ? null : address.Trim(),
    Locality = String.IsNullOrEmpty(city) ? null : city.Trim(),
    PostalCode = String.IsNullOrEmpty(zipCode) ? null : zipCode.Trim()
};

......现在我要送我的异步请求,以这种方式:

geocodeServiceClient.GeocodeAsync(request);

这一切工作正常,但我有一个小问题(当然也有很多变通办法......但我想做到这一点的最好方式!):我想送,在我的要求下,额外的参数(在我的情况下,它只是一个Guid标识符,但也是一个String值,将是确定的),当我从服务器获取(我需要它的其他内部检查)的响应,我会用!

private void geocodeServiceClient_GeocodeCompleted(object sender, BingMapGeoCodeService.GeocodeCompletedEventArgs e)
{
    // HERE I WANT TO GET BACK MY VALUE, TO CHECK IT!  

    var geoResult = (from r in e.Result.Results
                     orderby (int)r.Confidence ascending
                     select r).FirstOrDefault();

    ... some more logic here ...
}

我四处搜寻,但也因为(在我看来)的缺乏文件,我发现了这个附加参数GeocodeAsync()方法:

geocodeServiceClient.GeocodeAsync(request, userState);

我可以用这个参数作为我的要求定制的附加参数?

它是通过一个额外的参数第三部分服务的正确方法是什么?

如果这不是好这样做:什么是meanining这种超负荷的使用情况如何?

为什么叫这样(我的意思是userState)?

非常感谢你提前!

Answer 1:

我终于找到了我自己的方式:userState参数就是我正在寻找。

按照有关WCF服务这个问题: http://www.c-sharpcorner.com/uploadfile/prvn_131971/chapter-33-advanced-web-services/



文章来源: Bing GeocodeService userState usage as custom additional parameter