Evet. Uygulamanız uygulama klasöründeki dosyaları değiştirebilirse - *.config
dosyasını, IO işlemlerinin dosyalarına göre veya "bölüm update
/save
/refresh
" yaparak güncelleştirin. Bu çözümde düz ileri mantık var - uzaktan yapılandırmaya sahip olmak mı istiyorsunuz? Uzaktan al, yerel güncellemeli ve al.
Numune: Kayıtlarda wcfsections.test.config
(tabi herhangi bir uzak kaynak mümkündür) da wcf bölümünün grup (<bindings>
, <behaviors>
.. vs.) saklanabilir ve "aşırı" conf dosyası yapılandırması isteyen var diyelim. güncellemeler sipariş wcf doğrulama alt sistem için önemlidir:
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
ConfigurationSectionCollection sections = ServiceModelSectionGroup.GetSectionGroup(config).Sections;
sections.Clear();
string fileName = ((GeneralSettings)ConfigurationManager.GetSection("generalSettings")).AppConfigServiceModelSectionFile;
XDocument doc = XDocument.Load(fileName);
var xmlGroup = (from x in doc.Descendants("system.serviceModel") select x).FirstOrDefault();
string[] sectionsInUpdateOrder = { "bindings", "comContracts", "behaviors", "extensions", "services", "serviceHostingEnvironment", "client", "diagnostics" };
foreach (string key in sectionsInUpdateOrder)
{
var e = (from x in xmlGroup.Elements(key) select x).FirstOrDefault();
if (e != null)
{
ConfigurationSection currentSection = sections[e.Name.LocalName];
string xml = e.ToString();
currentSection.SectionInformation.SetRawXml(xml);
}
}
config.Save();
foreach (string key in sectionsInUpdateOrder)
ConfigurationManager.RefreshSection("system.serviceModel/" + key);
Not: Daha sonra Configration güncelleme/kaydetme/yenileme kodu gibi görünüyor. Yanlış sırada güncellerseniz, doğrulama istisnası alabilirsiniz.
Bazen "Hayır" doğru bir yanıttır :-) –
http://msdn.microsoft.com/en-us/library/system.configuration.configuration.aspx bir alıntı bir "fiziksel" yol gereksinimini gösterir. : “Yapılandırma sınıfı örneği, belirli bir fiziksel varlık için geçerli olan tüm yapılandırma dosyalarından yapılandırma ayarlarının birleştirilmiş görünümünü temsil eder” –