#xamarin #xamarin.ios #xamarin.android
#xamarin #xamarin.ios #xamarin.android
Вопрос:
Я пытаюсь поместить файл конфигурации в часть PCL моего приложения для IOS / Android.
Документация по адресу:https://github.com/mrbrl/PCLAppConfig предлагает:
Assembly assembly = typeof(App).GetTypeInfo().Assembly;
ConfigurationManager.AppSettings = new ConfigurationManager(assembly.GetManifestResourceStream("DemoApp.App.config")).GetAppSettings;
Я ожидаю, что DemoApp — это имя сборки их образца приложения, поэтому у меня есть:
использование PCLAppConfig;
namespace LYG
{
public class App : Application
{
public App ()
{
Assembly assembly = typeof(App).GetTypeInfo().Assembly;
ConfigurationManager.AppSettings = new ConfigurationManager(assembly.GetManifestResourceStream("LYG.App.config")).AppSettings;
}
...
}
}
Я получаю следующую ошибку компиляции:
/Users/greg/Projects/LYG/LYG/LYG.cs(122,122): Ошибка CS1061: введите ‘ PCLAppConfig.ConfigurationManager' does not contain a definition for
GetAppSettings’ и нет метода расширения GetAppSettings' of type
PCLAppConfig.Удалось найти ‘ConfigurationManager’. Вам не хватает ссылки на сборку? (CS1061) (LYG)
Это мой файл packages.config:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="PCLAppConfig" version="0.3.1" targetFramework="portable45-net45 win8 wp8" />
<package id="PCLStorage" version="1.0.2" targetFramework="portable45-net45 win8 wp8" />
<package id="Xamarin.Forms" version="2.3.2.127" targetFramework="portable45-net45 win8 wp8" />
</packages>
Я также пробовал со скобками:
ConfigurationManager.AppSettings = new ConfigurationManager(assembly.GetManifestResourceStream("LYG.App.config")).AppSettings();
Почему не удается найти GetAppSettings?
Ответ №1:
Вам необходимо добавить пакет PCLAppConfig nuget в ваши проекты PCL и platforms.
Тогда, как я понимаю, вы пытаетесь использовать app.config на основе ресурсов; Я только что обновил документацию, чтобы отразить последнее обновление версии.
затем используйте:
Assembly assembly = typeof(App).GetTypeInfo().Assembly;
ConfigurationManager.Initialise(assembly.GetManifestResourceStream("DemoApp.App.config"));
если сомневаетесь, проверьте демонстрационный проект на github : https://github.com/mrbrl/PCLAppConfig/tree/master/src/DemoApp