2009-03-09 26 views
1

Bir WinForms uygulamasında bir web.config dosyası yüklemek ve sonuçta oluşan yapılandırmayı sorgulamak, XML kullanmak yerine semantik 'add' öğesinden daha azını bulmak mümkün mü? BununlaYükleme ve Sorgulama Web Yapılandırması

Using System.Web.Configuration; 

veya

Using System.Configuration; 

Eğer web.config dosyasında erişim verecektir ConfigurationManager nesneye erişimi olmalıdır olacak:

cevap

2

, ben bir XmlDocument ve XPath kullanılan ve iki ile iş yaptı Ek montaj başvurusu gerektirmeden kod satırları ve bir ithal ad alanı.

Yukarıdaki, bir WinForms uygulamasının ne anlama geldiği anlamına gelen bir sanal yol gerektirir? Bir web.config 'bir WinForms uygulamasında' açmaya ihtiyacım olduğunu belirttim.

Ve XPath bir iota geliştirdim. :-)

0

Hum, sen çalıştı yaptı.

1

System.Web.Configuration ad alanında WebConfigurationManager.OpenWebConfiguration method'u kullanabilirsiniz.

Örnek:

System.Configuration.Configuration config = 
     WebConfigurationManager.OpenWebConfiguration("/", "My Website", null) as System.Configuration.Configuration; 

KeyValueConfigurationCollection appSettings = config.AppSettings.Settings; 

Bu My Web Sitesi '' web sitesinin appsettings bloğunu alır. Sadece config dosyasına giden sanal yol olan ilk parametreyi değiştirin. Eğer o zaman System.Diagnostics gibi bir kamu arayüze sahip olmayan bir yapılandırma bölümüne erişmek istiyorsanız

using System.Web.Configuration 
WebConfigurationManager webCfg = WebConfigurationManager.OpenWebconfiguration("/WebApp"); 

// Edit/Query the configuration 
webConfig.AppSettings.Settings.Add("NewSetting","SomeValue"); 
webConfig.AppSettings.SectionInformation.ForceSave = true; 

webConfig.Save(); 

:

2

Sonra böyle bir şey giderdim gider System.Web bir başvuru eklemeniz gerekir Genel yapılandırma sınıflarını kullanabilir. System.Configuration bir başvuru ekleyin ve benzeri bir şey denemek: başarısızlık değişen derecelerde ile yukarıdaki, çok hızlı bir şekilde de olsa, tüm önerileri denedikten sonra

ConfiguationSection sysDiagnostics = webConfig.GetSection("system.diagnostics"); 
ConfigurationElementCollection sources = sysDiagnostics.ElementInformation.Properties["sources"].Value as ConfigurationElementCollection; 
foreach (ConfigurationElement source in sources) 
{ 
    ConfigurationElementCollection listeners = source.ElementInformation.Properties["listeners"].Value as ConfigurationElementCollection; 
    foreach (ConfigurationElement listener in listeners) 
    { 
     Console.WriteLine(listener.ElementInformation.Properties["name"].Value.ToString()); 
    } 
}