Я создал аспект PostSharp, чтобы выбросить ошибку компиляции, когда ключ в файле app.config не существует, но ConfigurationManager.AppSettings.HasKeys() возвращает «false», когда я проверяю его в методе CompileTimeValidate. Может мне помочь? Благодаря!Postsharp - проверка конфигурации настроек приложения
[Serializable]
public class ConfigurationValueRequiredAttribute : MethodInterceptionAspect
{
// Method invoked at build time. It validates that the aspect has been applied to an acceptable method.
public override bool CompileTimeValidate(MethodBase method)
{
bool valid = true;
if (string.IsNullOrEmpty(ConfigurationManager.AppSettings["Test"]))
{
Message.Write(SeverityType.Error, "CUSTOM02", "Test not exists!");
valid = false;
}
return valid;
}
}
Что произойдет, если вы проверите какие-либо ключи? Я не думаю, что app.config будет загружаться во время компиляции. Вы можете попробовать загрузить app.config вручную или загрузить файл app.config в формате XML и выполнить некоторую проверку xpath для проверки наличия ключей. – Michael