【发布时间】:2019-06-26 11:39:39
【问题描述】:
我正在尝试使用地图和图钉创建我的第一个 Xamarin.Forms 移动应用,所以请多多包涵。
我正在尝试向地图添加图钉。我使用此代码添加一个引脚:
map = new Map {
IsShowingUser = true,
HeightRequest = 100,
WidthRequest = 960,
VerticalOptions = LayoutOptions.FillAndExpand
};
map.MoveToRegion (MapSpan.FromCenterAndRadius (
new Position (36.9628066,-122.0194722), Distance.FromMiles (3)));
var position = new Position(36.9628066,-122.0194722);
var pin = new Pin {
Type = PinType.Place,
Position = position,
Label = "Santa Cruz",
Address = "custom detail info"
};
map.Pins.Add(pin);
现在,我想从 tsql 表中添加几个引脚,而不是只添加一个引脚。
所以我创建了一个返回坐标列表的WCF service。一个返回json,另一个返回datatable:
public DataTable ToEraseGetCoordinates()
{
string sqlQuery = "select lat,lon from MyStores";
string connString = GetConnString();
SqlDatabase sqlDatabase = new SqlDatabase(connString);
DataSet result = sqlDatabase.ExecuteDataSet(CommandType.Text, sqlQuery);
return result.Tables[0];
}
public System.IO.Stream ToEraseGetCoordinatesJson()
{
string sqlQuery = "select lat,lon from MyStores";
string connString = GetConnString();
SqlDatabase sqlDatabase = new SqlDatabase(connString);
DataSet result = sqlDatabase.ExecuteDataSet(CommandType.Text, sqlQuery);
return ConvertToJson(result.Tables[0]);
}
我像这样调用 WCF:http://80.102.51.381:101/Service1.svc/ToEraseGetCoordinates(用于数据表的 xml 表示)
对于 JSON:http://80.102.51.381:101/Service1.svc/ToEraseGetCoordinatesJson,它返回:
{"lat":25.7616,"lon":-80.1917},{"lat": 28.5383,"lon":-81.3792}
我的问题是:接下来我该怎么做才能让我的 Xamarin.Form 读取此内容?
不管返回类型如何,我不知道 Xamarin 将如何消耗 WCF 并绘制引脚。
【问题讨论】:
-
您使用的是哪种 WCF 绑定?网址?如果是这样,json 将非常容易与 httpclient 和 newtonsoft 一起使用。此代码可能有用:github.com/dotnet-architecture/eShopOnContainers/tree/dev/src/…
-
谢谢,但问题不在于如何转换为 json。我已经使用 newtonsoft 转换为
json。 -
如果你创建一个 REST 服务而不是使用 WCF,你的生活会轻松很多
标签: c# wcf xamarin xamarin.forms visual-studio-2017