PDA

View Full Version : سوال: مشکل با اضافه کردن مقدار به webconfig با کدنویسی



lord_viper
یک شنبه 05 شهریور 1391, 08:10 صبح
با سلام
من ار vs2010 استفاده میکنم وقتی میخواهم مقداری رو به <codeSubDirectories> با کد نویسی اظافه کنم همش با خطای {"The configuration is read only."} مواجه میشم ولی به صورت دستی هیچ مشکلی وجود نداره چطور میتونم این مشکل رو حل کنم؟

Mohammadvb6
یک شنبه 05 شهریور 1391, 11:12 صبح
امیدوارم منظورتونو درست فهمیده باشم . شاید بتونید از این روش ایده بگیرید :

تغییرات در Webconfig به صورت Runtime :

using System.Configuration;

Configuration config = WebConfigurationManager.OpenWebConfiguration(Reque st.ApplicationPath);

lblSiteName.Text = config.AppSettings.Settings["websiteName"].Value;
lblWelcome.Text = config.AppSettings.Settings["welcomeMessage"].Value;

if (config.AppSettings.Settings["welcomeMessage"].Value.Length > 15)
{
config.AppSettings.Settings["welcomeMessage"].Value = "Welcome, again.";
}
else
{
config.AppSettings.Settings["welcomeMessage"].Value = "Welcome, friend.";
}
config.Save();



حال اگر بخواهیم یک گزینه اضافه کنیم :


Configuration config = WebConfigurationManager.OpenWebConfiguration(Reque st.ApplicationPath);
if (config.AppSettings.Settings["CompanyName"] != null)
{

}
else
{
config.AppSettings.Settings.Add("CompanyName", "Novin Media");
config.Save();
}



webconfig :


<configuration>
<appSettings>
<add key="welcomeMessage" value="Welcome, again."/>
<add key="websiteName" value="My Web Site"/>
<add key="CompanyName" value="Novin Media"/>
</appSettings>
</configuration>

lord_viper
یک شنبه 05 شهریور 1391, 12:25 عصر
سلام من کد زیر رو نوشتم



Configuration cnf = WebConfigurationManager.OpenWebConfiguration("~");
CompilationSection cmp = WebConfigurationManager.GetSection("system.web/compilation") as CompilationSection;
Response.Write(cmp.CodeSubDirectories[0].DirectoryName);

CodeSubDirectory dir = new CodeSubDirectory("add");
dir.DirectoryName = "simsim";
cmp.CodeSubDirectories.Add(dir);
cnf.Save();


و از اون خط ارور The configuration is read only رو میگیره

Mohammadvb6
یک شنبه 05 شهریور 1391, 13:56 عصر
http://technet.microsoft.com/en-us/library/bb633142.aspx

lord_viper
چهارشنبه 08 شهریور 1391, 06:43 صبح
اون متد کلا ReadOnly هست و نمیشه دینامیک بهش چیزی اضافه کرد حتما باید به صورت دستی اضافه بشه