2009-06-30 15 views
6

In meinem Projekt, wenn ich ein Webusercontrol oder ein Webformular erstellen, erstellt es den Code hinter , aber es erstellt auch eine Datei .ascx.designer.cs..designer.cs für was ist es?

Wozu dient diese Datei? Kann ich verhindern, dass es hinzugefügt wird, wenn ich ein neues Webformular/Webusercontrol erstelle?

Antwort

1

Dies ist normalerweise der IDE-generierte Code, der das Formular einrichtet (das Sie per Drag-and-Drop konfigurieren oder Werte in Eigenschaftenfenster einfügen). Wahrscheinlich nicht so eine gute Idee, um es loszuwerden, da Ihre Anwendung es brauchen würde (es sei denn, Sie planen, alles manuell zu codieren).

+0

Eine gute intellektuelle Übung, aber nein, nicht allgemein empfohlen. –

4

In .NET 1.x wurde der Code, der es dem Visual Studio-Designer ermöglichte, eine visuelle Darstellung der Seite zu erstellen, in den Code hinter der Datei selbst aufgenommen. Es wurde normalerweise in einer Region namens "Designer generated code" gekapselt. (IIRC!)

Neue Entwickler haben häufig unbeabsichtigt Änderungen an diesen Codeabschnitten vorgenommen, die zu Problemen bei der Arbeit mit Entwurfsansichts- oder Kompilierungsfehlern führten.

In .NET 2+ konnte M $ mit dem Aufkommen partieller Klassen diesen Teil des Codes in eine separate Teilklasse extrahieren, die den vom Entwickler geschriebenen Code nicht stört. Diese Datei wird normalerweise als Designer.vb/cs bezeichnet. Sie sollten es nicht aus den oben genannten Gründen löschen.

+2

Heh, oder VS würde plötzlich die Ereignisverkabelung fallen lassen, und Sie hätten keine Ahnung, warum PageLoad nicht mehr feuern würde - selbst jetzt wird VS manchmal bei mir verwirrt und verwandelt alle meine benutzerdefinierten Steuerelemente in generische System.Web.UI.Controls und dann wird nicht kompiliert ... –

+0

@Zhaph: Du machst mich nostalgisch ... das waren die Tage, lol! – Cerebrus