WebConfigurationManager ve ConfigurationManager arasındaki fark nedir?


103

The WebConfigurationManagerve the arasındaki fark nedir ConfigurationManager?

Birini diğerine ne zaman kullanmalıyım?

GÜNCELLENMİŞ

Sadece baktım WebConfigurationManagerve bazı nedenlerden dolayı bağlantı dizelerine ConfigurationManager(bir dizi gibi) yaptığınız gibi erişemiyorsunuz . Biri bana MS neden böyle yaptığını söyleyebilir mi? Kullanmanız gereken bağlantı dizesini WebConfigurationManager.

CAVEAT ile YENİDEN GÜNCELLENDİ!

System.ConfigurationProjenize eklenen ad alanına bir referansınız yoksa, WebConfigurationManager.ConnectionStringsbenzer bir diziye erişmeye çalıştığınızda Visual Studio bir hata gösterecektir !


1
"Uyarı" nın çok doğru olduğunu düşünmüyorum. System.configuration'a ihtiyaç duymadan bağlantı dizeleri için system.web.configuration kullanıyorum
sclarson

Yanıtlar:


96

WebConfigurationManger, bir web uygulaması içinde yapılandırma kalıtımının nasıl ele alınacağını bilir. Bildiğiniz gibi, bir uygulamada birden fazla web.config dosyası olabilir - biri sitenin kök dizininde ve herhangi bir sayı alt dizinlerde. Olası geçersiz kılınmış yapılandırmayı almak için GetSection () yönteminin yolunu iletebilirsiniz.

Reflector ile WebConfigurationManager'a bakarsak, her şey açıktır:

public static object GetSection(string sectionName)
{
    ...
    return ConfigurationManager.GetSection(sectionName);
}

public static object GetSection(string sectionName, string path)
{
    ...
    return HttpConfigurationSystem.GetSection(sectionName, path);
}

26

WebConfigurationManager, özellikle ASP.NET uygulamaları için yapılmıştır.

WebConfigurationManager, Web uygulamaları için geçerli olan yapılandırma dosyalarını yüklemek için ek yöntemler sağlar.

ConfigurationManager, ".exe" uygulamaları için geçerli olan yapılandırma dosyalarını yüklemek için yöntemler de sağlar.

WebConfigurationManager'a bir göz atmanızı ve size ConfigurationManager ile yapamayacağınız herhangi bir şeyi sağlayıp sağlamadığını görmenizi öneririm, aksi takdirde ConfigurationManager'ı kullanmak kodunuzun web ve masaüstü aps arasında sorunsuz bir şekilde kullanılmasını çok daha kolay hale getirir.


4

WebConfigurationManager System.Web derlemesinde yer alsa da, döndürdüğü ConnectionStringSettingsCollection System.Configuration'da bulunur.

Eğer hatayı alıyorsanız

"System.Configuration.ConnectionStringSettingsCollection" türündeki bir ifadeye [] ile dizinleme uygulanamaz

dizi dizinine erişmeye çalışırken ...

WebConfigurationManager.ConnectionStrings["Name"].ConnectionString

montaj sistemine bir referansınız olduğundan emin olun.


3

Bağlantı dizeleri hakkında ne demek istediğinizden emin değilim.

Arayan WebConfigurationManager.ConnectionStrings aradığınız taktirde alacağınız aynı olan bir System.Configuration.ConnectionStringSettingsCollection döndürür ConfigurationManager.ConnectionStrings .

Aksi takdirde, XOR'un dediği gibi, bir uygulamadaki klasörler arasında dolaşırken bunları gerektiği gibi birleştirerek birden çok hiyerarşik web.configs'i işlemek için tasarlanmıştır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.