Meine Aktionen im ASP.NET MVC-Controller sind mit zahlreichen Eigenschaften wie diesem ausgestattet.
%Vor%Was ich tun möchte, ist dies in etwas wie #if und #endif einzufügen und DebugMode-Einstellungen in meiner Datei web.config zu haben. Wenn diese Einstellung auf "true" gesetzt wird, sollten die dekorierenden Eigenschaften ignoriert werden. Ich möchte den Debug-Modus aktivieren und im Debug-Modus sollte keine Komprimierung und kein Caching erfolgen.
Im Wesentlichen wäre es also so, als würde man diese schmückenden Eigenschaften auskommentieren (was ich jetzt gerade tue und habe genug davon):
%Vor%Offensichtlich arbeiten #if und #endif mit definierten (#define) C # -Symbolen, ich konnte kein Beispiel finden, wo dies mit anderen Arten von Bedingungen (wie web.config-Werten, etc.) funktionieren würde.
Hilfe geschätzt
Stattdessen würde ich verwenden Web Deployment Projects und das ConfigSource Attribut in der web.config
.
Ich würde die web.config in zwei Dateien für jede Komponente aufteilen. Zum Beispiel würde Ihr Ausgabe-Cache in outputcache.dev.config
und outputcache.live.config
aufgeteilt werden. Sie sollten die Konfigurationsquelle als Dev-Konfigurationsdatei eingeben.
Ihre dev.config würde Ihrer App grundsätzlich mitteilen, dass Sie den laufenden Cache nicht cachen möchten ( enableOutputCache="false"
).
Wenn Sie dann Ihr Bereitstellungsprojekt ausführen, können Sie stattdessen die Zeichenfolgen dev.config durch die Datei live.config ersetzen.
Weitere Diskussionen zu den Projekten configSource und Web Deployment .
Wie für Ihr CompressFilter-Problem ... Nun, ich hätte einfach einen App-Einstellwert in Ihren Konfigurationsdateien. Nach dem Teilen der Konfigurationsdateien hätten Sie appsettings.dev.config
und appsettings.live.config
. In deinem Entwickler hättest du etwas wie:
Und in Ihrer live.config, ja, Sie haben es erraten:
%Vor%Wenn Sie das Attribut verwenden, können Sie einfach gegen die InLiveMode App-Einstellung.
Zu Ihrer Information: Ich bevorzuge eine Art Fassade Klasse, also habe ich es nicht mit magischen Strings im Code zu tun , aber der Einfachheit halber hätten Sie etwas wie:
%Vor%Entschuldigung, es gibt nichts in .NET, das dazu führt, dass verschiedene Teile Ihres Codes zur Laufzeit kompiliert werden.
In diesem Artikel wird veranschaulicht, wie Sie Ihre MVC-Filter (AOP) für die von Ihnen beschriebenen Situationen ändern oder erweitern können. Während die Konfigurationsdateien für die Bereitstellung geändert werden können, tritt das Problem im Debug-Modus immer noch auf.
Tags und Links asp.net-mvc c# c-preprocessor