Are:
<% @Page Language="C#" Inherits="corn.cheese.pies.CasLogin" CodeBehind="anon.cs" %>
sayfa hata verir? Örneğin, farkla ilgili olarak CodeFile vs CodeBehind (her iki bağlantı da olsa kabul yanıtını dikkate almayın) veya this article'a bakın. Özetle
:
A CodeBehind
dosyası web sitesinin bin
klasöründe dağıtıldığı bir topluluk halinde derlenmiş varsayılır. ASP.NET altyapısı, aspx
dosyanızı yüklediğinde, bu sınıfı bulmaya çalışmak için Inherits
yönergesini kullanır. CodeBehind
dosyası, öncelikle derlemeye yardımcı olmak için kullanılır (ve örneğin "Kaynağı Görüntüle"), ancak iş derleme zamanında yapılır.
A CodeFile
dosyası, ASP.NET tarafından çalışma zamanında talep üzerine derlenmiş ve derlenmiştir. Web sitenizi eski modele geri dönecek şekilde "ön-derleme" yapabilirsiniz; bu, kaynak kodunuzu her web sitesine dağıtmak istemiyorsanız kullanışlıdır. Ancak, varsayılan olarak, CodeFile
dosyanız, siteye dağıtılan bir .cs
dosyasıdır ve sınıf ASP.NET geçici depolama klasöründe oluşturulur. (Teknik açıdan bakıldığında: CodeFile
sayfalar, yalnızca C# dosyasında konuşlandırılan sınıfın yalnızca özel kod arkaplanı parçası olan tanımlarıdır; bu nedenle başlangıçta CodeFile
bulunmamıştır, çünkü C# derleyicisi başlangıçta kısmi sınıflar yapamazdı .)
CodeFile
'dan CodeBehind
'a değiştirerek, ASP.NET'e C# dosyasının varlığını yok saymasını ve yalnızca derlenmiş derlemede bulunmasını söylüyorsunuz. ASP.NET, derlenmiş derlemenin aslında aramanız için söylediğiniz sınıfı içermediğini size söyler.
Kod arkalığının, devralınan kontrol sınıfının web uygulaması DLL'sinde kullanılabilir olmasını gerektirdiğine inanıyorum. Visual Studio olmadan bunu yapabilmek için neden ihtiyaç duyuyorsunuz/beklersiniz? – millimoose
Bir cevap değil, gerçekten, ama: Neden CodeFile -> CodeBehind'den gidiyorsunuz? Genelde insanlar "diğer * yoldan gitmektedir, çünkü CodeFile" daha yeni "(göreceli" 7 yaşında vs 9 yaşında "anlamındadır). –