Czy jesteś pewien, że rozumiesz różnicę między CodeFile i kodzie? Zobacz, na przykład, CodeFile vs CodeBehind (zignoruj odpowiedź akceptującą, jednak oba łącza są dea) lub this article o różnicy.
W skrócie:
Plik CodeBehind
zakłada się być kompilowane do zespołu, który został wdrożony w folderze bin
swojej stronie internetowej. Kiedy silnik ASP.NET ładuje plik aspx
, używa dyrektywy Inherits
, aby spróbować znaleźć tę klasę. Plik CodeBehind
służy przede wszystkim do kompilacji (i narzędzi, np. "View Source"), ale praca jest wykonywana w czasie kompilacji.
Plik jest zlokalizowany i skompilowany przez program ASP.NET w czasie wykonywania, na żądanie. Możesz "wstępnie skompilować" swoją stronę, aby powrócić do starszego modelu, co jest przydatne, jeśli nie chcesz wdrażać kodu źródłowego do każdej witryny internetowej. Jednak domyślnie plik CodeFile
jest plikiem .cs
wdrożonym w witrynie, a klasa jest generowana w folderze tymczasowego magazynu ASP.NET. (Z technicznego punktu widzenia: CodeFile
są definicjami z tylko niestandardową częścią kodu z klasy faktycznie wdrożonej w pliku C#, dlatego CodeFile
początkowo nie istniało, ponieważ kompilator C# nie mógł początkowo wykonywać klas częściowych .)
Po zmianie z CodeFile
na CodeBehind
mówisz programowi ASP.NET, aby zignorował obecność pliku C# i szukał go tylko w skompilowanym zestawie. Z kolei ASP.NET mówi ci, że skompilowany zestaw w rzeczywistości nie zawiera klasy, której poleciłeś jej szukać.
Wierzę, że niedozwolone kodowanie wymaga odziedziczonej klasy kontrolnej, która będzie dostępna w bibliotece DLL aplikacji sieci Web. Dlaczego potrzebujesz/możesz oczekiwać, że będziesz w stanie to zrobić bez Visual Studio? – millimoose
Nie odpowiedź, naprawdę, ale: dlaczego idziesz z CodeFile -> CodeBehind? Ogólnie rzecz biorąc, ludzie idą inną drogą *, ponieważ CodeFile jest "nowszy" (w sensie względnym "7 lat vs 9 lat"). –