2009-08-26 27 views
1

Alle Fragen beziehen sich auf Website-Projekte.Automatische Referenz der Klassendateien in App_Code vs Verweis der Klassendateien außerhalb App_Code


1) Warum werden Dateiklassen innerhalb App_Code Ordner automatisch von der übrigen Anwendung verwiesen, während Dateiklassen außerhalb App_Code erstellt wurden, sind nicht wahr?


2) Ich weiß nicht viel über Zusammenstellung, aber warum müssen wir explizit Referenzaußen App_Code Dateien Klasse erstellt? Da diese Dateien in DLLs kompiliert werden, die vom Programmierer erstellt und benannt werden, weiß VS nicht, was die Namen dieser DLLs sind, und kann daher nicht automatisch auf diese DLLs verweisen.

3) Dateien außerhalb von App_Code werden standardmäßig nicht automatisch kompiliert? Aber warum nicht?


thanx

Antwort

1

klingt für mich wie Sie Web Application Verhalten von einer Web-Site „Projekt“ zu erwarten.

In einer Website wird jede ASPX/ASHX-Datei (außerhalb des App_Code) als Inhalt betrachtet. Zu jedem Zeitpunkt möchten Sie vielleicht einige der Dateien auf der Website veröffentlichen. Daher ist es nicht wünschenswert, sie alle gleichzeitig zu einer einzigen Zusammenstellung zusammenzustellen.

Mit einer Web-Anwendung veröffentlichen Sie normalerweise nicht nur ein paar Dateien, Sie vervollständigen eine Phase der Anwendung, kompilieren sie alle zusammen und veröffentlichen Sie dann.

Sie scheinen anzugeben, dass Sie "Klassen" außerhalb von App_Code deklariert haben? Wo wären sie, wenn nicht in ihrem eigenen DLL-Projekt? Wenn Sie sich in einem DLL-Projekt befinden, müssen Sie in den Eigenschaften der Website einen Projektverweis erstellen.

+0

Sie müssen einen Verweis auf Dll erstellen, weil VS nicht weiß, was Sie Dll mit dieser Klasse oder ... nennen werden? – rubysons

+0

Darf ich eine andere Frage stellen - wenn ich (in Code hinter) eine andere öffentliche Klasse erzeuge (neben der, von der die Seite abgeleitet wird) und wenn ich TypeName Attribut von ObjectDataSource auf diese Klasse setze, wird ODS aus irgendeinem Grund es nicht finden – rubysons

+0

Vielleicht sollten Sie ein einfaches Beispiel dafür angeben, was Sie in Ihrer Frage meinen. – AnthonyWJones

Verwandte Themen