2016-04-25 2 views
1

В настоящее время я работаю над Windows 10 UWP. Сначала у меня был только один проект, к которому я добавил файл Constants.resw для использования ресурсов, которые я сохранил в локальном хранилище, и обратился к ним позже. Теперь я создал фоновое задание типа Timer и хочу получить доступ к моей базе данных в проекте Timer Background Task, поэтому я создал проект библиотеки классов и добавил все классы POJOS и Utils в этом проекте. Может ли кто-нибудь предложить, могу ли я добавить проект Constants.resw в библиотечной библиотеке и как?Как использовать Resource.resw в проекте библиотеки классов в UWP?

Кроме того, я хочу, чтобы получить доступ к нему, используя ниже код, который я использовал, когда я был один проект (Windows 10 UWP Project)

ApplicationDataContainer userSettings = ApplicationData.Current.LocalSettings; 
if (!userSettings.Containers.ContainsKey(Constants.DB_AVAILABLE)) //if (!checkIfDBExists().Result) 
{ 
    //some operations 
} 

Когда я пытаюсь использовать Constants.resw в моих фоновых задач, Я получаю следующее сообщение об ошибке

Exception thrown: 'System.TypeInitializationException' in Common.dll 
System.TypeInitializationException: The type initializer for 'Common.CommonResources.Constants' threw an exception. ---> System.Exception: Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED)) 
at Windows.UI.Xaml.Application.get_Current() 
at Common.CommonResources.Constants..cctor() 
--- End of inner exception stack trace --- 
at Common.CommonResources.Constants.get_DB_AVAILABLE() 
at Common.DatabaseManager.getSQLiteConnection() 
at Common.DatabaseManager.getLocationDetails()The type initializer for 'Common.CommonResources.Constants' threw an exception. 
+0

Как вы к нему подключаетесь? пожалуйста, отправьте этот код слишком – Archana

+0

. Я пытаюсь получить доступ, используя вышеуказанный код 'userSettings'. Кроме того, как я могу получить доступ к файлам из библиотеки классов в фоновых задачах. Я разархивировал файл при запуске моего проекта UWP в локальном хранилище, но когда в фоновых задачах нет доступа к нему напрямую. Нужно ли загружать каждый файл по-разному для фоновых задач? –

+0

Вы получаете ошибку в этом Constants.DB_AVAILABLE? Isnt Constants - статический класс? что это?. Опубликовать этот класс – Archana

ответ

2

Вам не нужно, чтобы добавить Resources.resw файла в классе библиотеки или исполняемые компоненты Windows, так как ресурсы работают на уровне приложения не на уровне проекта. Это означает, что ваши ресурсы в вашем основном проекте приложения можно «увидеть» и использовать во всех ваших проектах в вашем приложении. Это пример того, как вы можете загружать ресурсы извне:

ResourceContext resourceContext = ResourceContext.GetForViewIndependentUse(); 
ResourceMap resourceMap = ResourceManager.Current.MainResourceMap.GetSubtree("Resources"); 

// Here you load the resource you need 
var resourceValue = resourceMap.GetValue("resourceName", resourceContext); 
+0

Затем, как сохранить мои константы в локальных настройках? –

+0

Точно так же вы, как правило, используете ApplicationDataContainer. –

+0

Хорошо, нет способа использовать его с помощью resx или resw-файлов, так как есть много параметров, которые я использую в Constants.resw прямо сейчас. И это пара слов и значений строк –

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