WinRT’yi “klasik” .NET uygulamalarında kullanın.

Womanne

Member
Yeni COM tabanlı Windows Çalışma Zamanı (WinRT) kitaplığı, yalnızca Windows 8 Metro uygulamalarında değil, .NET ile yazılmış “klasik” masaüstü uygulamalarında da kullanılabilir. Ancak, Microsoft fikrini tekrar değiştirmedikçe ve eski işletim sistemleri için WinRT’yi önermedikçe, bu tür uygulamalar yalnızca Windows 8 ile çalışır.

Duyuru



Aşağıdaki örnek, .NET 4.5’te C# 5.0 ile uygulanan Windows (Masaüstü) Arama ve iki WinRT bileşeni kullanılarak bir dosya aramasını gösterir: Windows.Storage.dll VE Windows.Storage.Search.dll.

Visual Studio 11 geliştirici önizlemesinin “Referans Ekle” iletişim kutusunda herhangi bir WinRT bileşeni bulamayacaksınız. WinRT bileşenlerine bir referans ayarlamak için şu anda .winmd dosyalarına başvuruyoruz. c:WindowsSystem32WindowsMetadata. Çoğu WinRT işlevi gibi, bu işlev de yalnızca eşzamansız bir işlemle gerçekleştirilebilir.

static void Main(string[] args)
{
Console.WriteLine("Starte");
DateiSuchDemo();
Console.WriteLine("Warte");
while (true) { Console.Write("."); System.Threading.Thread.Sleep(1000); }
}
/// <summary>
/// Suche ausführen mit Windows Search auf Basis der WinRT-Bibliothek
/// Windows.Storage.Search.dll
/// Auch eine Referenz auf Windows.Storage.dll wird benötigt.
/// </summary>
private static void DateiSuchDemo()
{
// Suche definieren
var docs = Windows.Storage.KnownFolders.DocumentsLibrary;
var queryOptions = new Windows.Storage.Search.QueryOptions();
queryOptions.FolderDepth = Windows.Storage.Search.FolderDepth.Deep;
queryOptions.IndexerOption = Windows.Storage.Search.
IndexerOption.UseIndexerWhenAvailable;
queryOptions.UserSearchFilter = "'iX Magazin'";
// Suche starten
var query = docs.CreateFileQueryWithOptions(queryOptions);
var aktion = query.GetFilesAsync();
aktion.Completed += DateiSucheFertig;
aktion.Start();
Console.WriteLine("Suche beginnt..");
}

/// <summary>
/// Suchergebnisse empfangen und ausgeben
/// </summary>
private static void DateiSucheFertig
(IAsyncOperation<IReadOnlyList<IStorageFile>> r)
{
Console.WriteLine("SearchCompleted/Status: " + r.Status);
if (r.Status != AsyncStatus.Error)
{
Console.WriteLine("Gefundene Dateien: " + r.GetResults().Count);
foreach (var f in r.GetResults())
{
Console.WriteLine(f.FileName);
}
}
}


()






Haberin Sonu
 
Üst