2012-03-29 15 views
10

Makinemin kök web yapılandırması (Windows/Microsoft.NET/... içindeki öğelerden), system.web/pages/namespaces/add öğelerini içerip içermediğinden bağımsız olarak, her aspx.cs CodeBehind dosyasında ifadelerin kullanılmasını talep ediyorum. Niye ya? Bir sayfanın ne olduğunu anlayamayacağından şikayet etmeli ve şikayet etmemeli mi? Sonuçta, <add namespace="System.Web" /> kök web.config var!Web.config'ın system.web/Pages/Namespaces Tag'inin amacı nedir?

+0

Yanlış şikayetler ile derleyecek mi, yoksa derleme yapmayacak mı? VS her zaman webconfig eklenen kontrol ad alanları ile mücadele etti, ancak çoğu durumda her şey inşa ve iyi çalışır ... –

+0

Derleme değil. Sunucu kodunun CodeBehind dosyasında bulunduğu bir sistemde, bu belirli web yapılandırma bölümüne gerçekten sıfır değer var. – JonathanWolfson

cevap

9

system.web/pages/namespaces/add eleman .ASPX dosyalar, derleme önce kaynağın hiçbir ön işleme yapılmadığını olarak hala doğru using yapmanız gereken (.ASPX.CS dahil) Normal .CS dosyalar içindir. Yani .ASPX.CS, tüm using Namespace bildirimleri de dahil olmak üzere geçerli bir CS dosyası olmalıdır.

+0

Merhaba, 'ön işleme' hakkında daha fazla bilgi verir misiniz? .aspx dosyaları 'ön işleme' sırasında 'system.web/pages/namespaces' (veya [@import] yönergesi) ile nasıl etkileşime girer? Teşekkürler. – pinopino

+0

@pinopino - Eğer sorunuz varsa lütfen yeni bir soru sorunuz (ve eğer açıklayıcı bir soru soruyorsanız - aslında orijinaline bağlantı). Hiçbiri olmadığından ASP.Net ile ilgili olarak ön işleme hakkında ne öğrenmek istediğinize emin değilim. [Wikipedia - Preprocessor] ile başlamak isteyebilirsiniz (http://en.wikipedia.org/wiki/Preprocessor_%28programming%29). –

7

Bu, aspx ve ascx dosyalarınızın adlarını ekler, böylece <%@ Import Namespace="MyNameSpace" %> ifadelerini içermemeniz gerekir. documentation on MSDN itibaren

:

ad eleman montaj öncesi derleme sırasında kullanımına ithalat direktifleri koleksiyonu tanımlar. Bu özellik, bir ASP.NET sayfasındaki @ Import yönergesine karşılık gelir. @ Import yönergesi, bir uygulamanın tüm sayfalarına otomatik olarak aktarılan ad alanlarını belirtmeniz için sağlar.

Codebehind'iniz bu web.config girişlerinden hiçbir şekilde etkilenmez.

+0

VB.NET ile ilgili bulduğum şey bu. Makinelerimden birinde yapamayacağım başka bir şey yapamam. Bu yüzden, ekrana gittim ve görüyorum: Bu, "Microsoft Visual Basic 2010 01019-532-2002102-70462" yi oluşturabilir. Bu olamaz: "01019-532-2002102-70649". Umarım yardımcı olur. –

5

Diğer yanıtlar, bu web.config ayarının yalnızca ASPX sayfalarını etkilediğini ve ASPX.CS. Bunu .NET 4.0'ı hedefleyen bir ASP.NET web sitesinde test ettim ve bunun C# sayfaları için doğru olduğunu, ancak VB sayfaları için doğru olmadığını buldum.

Web.config ayarlarına bir ad alanı eklemek, bunu her ASPX.VB sayfasının üst kısmında listeleme gereksinimini kaldırdı.

Bunun neden olabileceği teorilerle ilgilenirim. Dosyaların arkasında hem ASPX.CS hem de ASPX.VB kodu için çalışacağını düşünürdüm.