私は、app.configファイルのキーが存在しないときにコンパイルエラーをスローするためにPostSharpアスペクトを作成しましたが、CompileTimeValidateメソッドでチェックするとConfigurationManager.AppSettings.HasKeys()が "false"を返します。私を助けることができますか?ありがとう!Postsharp - App Settingsの設定チェック
[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を手動でロードしたり、XMLとしてapp.configをロードしたり、キーが存在するかどうかを確認するためにxpathを実行したりできます。 – Michael