1 回答

TA貢獻1775條經(jīng)驗 獲得超11個贊
首先,歡迎來到SO!
Xamarin Forms 是否提供這種方式來做到這一點?
簡單的答案是(不幸的是):不。
如果要使用 Xamarin Forms 重用存儲在 Azure 上的完全相同的數(shù)據(jù)庫,則應(yīng)通過 Web 公開與 Azure 數(shù)據(jù)庫交互的 API。然后,您的 Xamarin Forms 應(yīng)用程序?qū)⑹褂妙愡B接到您的 API HttpClient
,以便發(fā)布/獲取數(shù)據(jù)。Xamarin 表單支持本地 SQLite 數(shù)據(jù)庫引擎,僅此而已。如果需要,請在此處了解有關(guān)使用 Xamarin 表單的本地數(shù)據(jù)庫的更多信息。
有沒有更好的方法可以讓我(作為初學(xué)者)在兩個不同的平臺(在我的情況下是桌面和手機)上與兩個不同的應(yīng)用程序共享同一個數(shù)據(jù)庫?
最好的方法是明確公開鏈接到 Azure DB 的 Web API。將來,您的桌面和移動應(yīng)用程序(以及任何其他應(yīng)用程序)將調(diào)用您的 ApiController 方法,這意味著這將是您所有應(yīng)用程序之間的共享代碼。
下面是一個關(guān)于如何從 Xamarin Forms 調(diào)用 API 的通用示例方法:
public static async Task<TResult> GetData<TResult>(string apiTarget)
{
using (var client = new HttpClient())
{
//setup client
client.BaseAddress = new Uri(_API_BASE_URI);
client.MaxResponseContentBufferSize = 9999999;
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Add("Authorization", "Bearer " + _TOKEN);
TResult _Result = default(TResult);
//make request
HttpResponseMessage response = await client.GetAsync(apiTarget).ConfigureAwait(false);
if (response.IsSuccessStatusCode)
{
var content = await response.Content.ReadAsStringAsync().ConfigureAwait(false);
_Result = (TResult)JsonConvert.DeserializeObject<TResult>(content);
}
return _Result;
}
}
- 1 回答
- 0 關(guān)注
- 110 瀏覽
添加回答
舉報