Aktivieren Sie den Debug-Modus in der ASP.NET MVC-App mithilfe von C # -Direktiven

8

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

    
mare 26.01.2010, 23:38
quelle

3 Antworten

2

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:

%Vor%

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%     
Dan Atkinson 27.01.2010, 00:53
quelle
0

Entschuldigung, es gibt nichts in .NET, das dazu führt, dass verschiedene Teile Ihres Codes zur Laufzeit kompiliert werden.

    
John Saunders 27.01.2010 00:55
quelle
0

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.

Ссылка

    
user181799 24.07.2012 05:32
quelle

Tags und Links