Асинхронное свойство в C #
В моем приложении Windows 8 естьglobal класс, в котором есть несколько статических свойств, таких как:
public class EnvironmentEx
{
public static User CurrentUser { get; set; }
//and some other static properties
//notice this one
public static StorageFolder AppRootFolder
{
get
{
return KnownFolders.DocumentsLibrary
.CreateFolderAsync("theApp", CreationCollisionOption.OpenIfExists)
.GetResults();
}
}
}
Вы можете видеть, что я хочу использовать корневую папку приложения где-то еще в проекте, поэтому я делаю это статическим свойством. Внутри геттера мне нужно убедиться, что корневая папка существует, иначе создайте ее. НоCreateFolderAsync
это асинхронный метод, здесь мне нужна синхронная операция. Я старалсяGetResults()
но это бросаетInvalidOperationException
, Какова правильная реализация? (Package.appmanifest правильно настроен, папка фактически создана.)