2010-03-23 26 views
10

Bazı özel verileri uygulama yapılandırma dosyasına kaydetmek istiyorum ve app.config dosyasında bazı özel bölümler oluşturmam gerekiyor. App.config'ten özel verileri okumak basit bir iştir, ancak programımdan app.config'e bilgi yazamıyorum. Bu sorunun çözümü için test projesi oluşturuyorum. özel bölüm app.config veri okuma içinÖzel bölümleri app.config dosyasına yazma

Ben bu makaleden bilgi kullandı:

http://devlicio.us/blogs/derik_whittaker/archive/2006/11/13/app-config-and-custom-configuration-sections.aspx

cevap

4

İlk kılma IsReadyOnly() sizin CustomConfigSection yanlış dönmek için.

(bu ASP.NET için, ama transferably olabilir) Eğer böyle bir şey yapmak mümkün olmalıdır Bunu yaptıktan sonra

:
System.Configuration.Configuration configFile = WebConfigurationManager.OpenWebConfiguration("~"); 
CustomConfigSection config = (CustomConfigSection)configFile.GetSection("Custom"); 
config.Tweak = 1; 
config.Change = "foo"; 
configFile.Save(); 

bir Deneyin.

+2

'false' döndürmek için' IsReadOnly() 'yi geçersiz kılmak mı istiyorsunuz? – FrustratedWithFormsDesigner

+0

Yep. Ben bir denizciyim. Editted. – Pike65

+0

Çok teşekkür ederim! Çok basit ve çok kullanışlı! –

5

app.config'a bir şey yazmamanız gerekiyor, çünkü eğer uygulamanızın kullanımını yalnızca Yöneticilerle sınırlandırıyorsunuz. Ayarları, kullanıcı profili klasöründe bulunan ayrı bir .config dosyasına yazmak daha iyi bir uygulamadır. <profiles>\<user name>\Application Data\<your product name>.

+0

Teşekkürler. Uygulamanın kullanıcısı sadece okuma ve yazma izinlerine ihtiyaç duyuyor. Eğer yanılıyorsam, lütfen beni düzeltin. –

+1

Açıklamak gerekirse: 'app.config' dosyası, Program Dosyaları altındaki bir klasöre yüklenir. Varsayılan olarak bu, standart kullanıcılara yazma erişimine izin vermeyecek şekilde ayarlanmıştır. Her ne kadar .NET, normal Yapılandırma API'sı aracılığıyla herhangi bir '.config' dosyasına yazmanıza izin verse de, aslında standart bir kullanıcı olarak çalıştırmayı denerseniz, bir güvenlik istisnası alırsınız. –

+0

Teşekkürler. Bunu hatırlayacağım. Masaüstü uygulamaları için değil, windows hizmetlerim için app.config dosyasına yazmak için ek fonksiyon kullanacağım. –