Определите, присутствуют ли все ресурсы базы данных в ASP.NET - PullRequest
1 голос
/ 24 января 2011

В настоящее время я храню свои ресурсы в базе данных вместо файлов resx. Я хотел бы иметь возможность проверить, все ли ключи, используемые в приложении, хранятся в базе данных, чтобы избежать ошибок во время выполнения.

У меня есть пользовательский ResourceProviderFactory для получения ресурсов.

Ресурсы могут быть на страницах просмотра aspx - GetLocalResourceObject("ResourceKey") или GetGlobalResourceObject("ResourceClass", "ResourceKey").

Они могут быть в контроллере - HttpContext.GetGlobalResourceObject("ResourceClass", "ResourceKey").

Я также вызываю ресурсы из основных сборок моего приложения, не используя фабрику ресурсов ASP.NET (вместо этого используется одиночный файл) - CoreResources.Current.GetResource("ResourceClass", "ResourceKey")

Что было бы для меня лучшим способом обеспечить, чтобы все ресурсы были в базе данных, не дожидаясь исключения времени выполнения?

1 Ответ

1 голос
/ 24 января 2011

Единственный подход, который я могу придумать, - это написать приложение, которое сканирует ваши файлы исходного кода и извлекает все ключи ресурсов, которые вы используете.Затем вы можете проверить наличие каждого ключа в вашей базе данных.К сожалению, это не так тривиально ... Я не думаю, что есть более простой способ.

Однако я бы изменил ваш ResourceProviderFactory, чтобы не выдавать исключение в случае отсутствия ключа.Просто верните какой-нибудь текст, например «Ресурс отсутствует:« xxx »», и зарегистрируйте его, чтобы его можно было добавить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...