Ich habe einen PostSharp-Aspekt erstellt, der einen Kompilierungsfehler verursacht, wenn der Schlüssel in der app.config-Datei nicht existiert, aber ConfigurationManager.AppSettings.HasKeys() gibt "false" zurück, wenn ich ihn in der CompileTimeValidate-Methode überprüfe. Kann mir helfen? Vielen Dank!Postsharp - Überprüfung der App-Einstellungen
0
A
Antwort
1
PostSharp Kompilierzeitprüfung ist ein eigener separater Prozess. Es läuft nicht im Kontext Ihrer Anwendung und lädt oder liest Ihre app.config nicht.
Zur Bestätigung habe ich Ihr Attribut in einer Testklasse verwendet und die Fehlermeldung "Test not exist!"
Dann habe ich dies zu C: \ Programdata \ Postsharp \ 4.2.29 \ bin.Release \ Postsharp-net40-x86-srv.exe.config
<appSettings>
<add key="test" value="123"/>
</appSettings>
... wieder gebaut, und Der Fehler ist weg. Das ist die .config-Datei, die es liest.
Was passiert, wenn Sie nach Schlüsseln suchen? Ich denke nicht, dass die app.config auf Kompilierzeit geladen wird. Sie könnten versuchen, die app.config manuell zu laden oder die app.config als XML zu laden und einen xpath zu machen, um zu überprüfen, ob die Schlüssel existieren. – Michael