开发者

Write In Config File Problem

hi

this code works fine and my config file changes correctly.

    //Local Variable Declaration
System.Configuration.Configuration oConfig =
    System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(
    Request.ApplicationPath);

if (oConfig .AppSettings.Settings["CompanyName"] == null)
{
    oConfig AppSettings.Settings.Add("CompanyName", "MyCompanyName");
    oConfig .Save();
}

but when I want to use a property for this purpose Nothing happend in Config File.

// Property Declaration

private System.Configuration.Configuration _oRootConfig;

public System.Configuration.Configuration oRootConfig
{
   get
   {
       return
           System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(
           Request.ApplicationPath);           

   }
   set { _oRootConfig = value; }
}

if (oRootConfig.AppSettings.Settings["CompanyName"] == null)
{
   oRootConfig.AppSettings.Settings.Add("CompanyName", "MyCompanyName");
   oRootConfig.Save(System.Configuration.ConfigurationSaveMode.Modified, true);
}

now i have two question:

1-why this code doesnot work ,and th开发者_开发知识库ere is no error.

2-if i want to programn in object oriented manner ,what can i do to fix this property if the problem is related to the property. thanks


You're reopening the config on every get, do this instead:

get
{
    if(this._oRootConfig == null)
        this._oRootConfig = (System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath));
    return this._oRootConfig;
}


this line of code:

get 
{ 
return  (System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath)); 
}

set { _oRootConfig = value; }

you are not setting _oRootConfig in your get. You need this code:

get
{
     _oRootConfig = (System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath));
     return _oRootConfig;
}

set
{
     _oRootConfig = value;
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜