2014-01-08 2 views
1

Я хотел бы использовать Azure Storage прямо из моего приложения Xamarin для кросс-платформы.Использование лазурной библиотеки клиентских хранилищ с xamarin

Способ, которым я мог бы это сделать, если бы я поддерживал только Windows 8 или Windows Phone 8, было бы использовать Библиотеку клиентов хранения. Мне было интересно, можно ли использовать эту же библиотеку из Xamarin, но пока я не нашел примеров. Я не заинтересован в использовании частично поддерживаемой сторонней библиотеки, поэтому единственной альтернативой может быть использование интерфейса REST.

Кто-нибудь знает, поддерживается ли библиотека в Xamarin?

+0

Вы имеете в виду этого компонента? http://components.xamarin.com/view/azure-mobile-services – Krumelur

+0

Нет. Я имею в виду это: https://github.com/WindowsAzure/azure-storage-net – blackpool

ответ

0

Я не вижу причин, почему this не работал на Xamarin.iOS или Xamarin.Android. Обычно, если он работает с Windows Phone 8, он будет работать и на других мобильных платформах. Другой путь - это совсем другая история. WP8 часто не хватает имен, доступных на Android и iOS.

Почему бы просто не попробовать? Добавьте проект в решение iOS, создайте проект Running Project iOS и посмотрите, как далеко вы сможете добраться.

Если у вас возникли проблемы, вы можете подойти к обходному пути: use Xamarin's component for Azure для iOS и Android, а другой для WP8.

Вы также можете создать интерфейс с методами, которые вам нужны, и абстрактный доступ Azure.

+0

* Почему бы просто не попробовать? ?* Просто сделал. «Невозможно связать сборки. Причина: Аргумент выходит за пределы допустимого диапазона (MT2001) –

1

Я только что построил простой тест Xamarin.Forms приложение, которое использует Azure Storage NuGet

Teal: Azure Storage demo

Он имеет примеры Blob, таблицы и очереди. Решение включает в себя простое консольное приложение, которое можно использовать для создания Sas (сигнатур общего доступа), которые вы вставляете в исходный код для тестирования. В «реальном» приложении вы получите их из серверного компонента (чтобы избежать значений жесткого кодирования в вашем приложении) - образец не удовлетворяет этому требованию к серверному коду.

код становится столь же просто, как

// Return a reference to the container using the SAS URI. 
CloudBlobContainer container = new CloudBlobContainer(new Uri(sas)); 
string date = DateTime.Now.ToString(); 
try 
{ 
    //Write operation: write a new blob to the container. 
    CloudBlockBlob blob = container.GetBlockBlobReference("xamarinblob_" + date + ".txt"); 

    string blobContent = textEntry.Text; //"This blob was created with a shared access signature granting write permissions to the container. "; 
    MemoryStream msWrite = new MemoryStream(Encoding.UTF8.GetBytes(blobContent)); 
    msWrite.Position = 0; 
    using (msWrite) 
    { 
     await blob.UploadFromStreamAsync(msWrite); 
    } 
} 
// Blob has now been uploaded 

P.S. не забудьте заменить FROM_PORTAL заполнителями в коде информация о недвижимости с портала Azure ...

Смежные вопросы