ConfigurationElement.IsModified 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
指示自上次保存或加载该配置元素后并在派生类中实现该元素时,该元素是否已被修改。
protected:
virtual bool IsModified();
protected public:
virtual bool IsModified();
protected virtual bool IsModified ();
protected internal virtual bool IsModified ();
abstract member IsModified : unit -> bool
override this.IsModified : unit -> bool
Protected Overridable Function IsModified () As Boolean
Protected Friend Overridable Function IsModified () As Boolean
返回
如果该元素已被修改,则为 true
;否则为 false
。
示例
以下示例演示如何扩展 IsModified。
protected override bool IsModified()
{
bool ret = base.IsModified();
// You can enter your custom processing code here.
return ret;
}
Protected Overrides Function IsModified() As Boolean
Dim ret As Boolean = MyBase.IsModified()
' Enter your custom processing code here.
Return ret
End Function 'IsModified
End Class
修改配置元素时,将调用上一示例中所示的方法,如以下示例所示。
// Show how to use IsModified.
// This method modifies the port property
// of the url element named Microsoft and
// saves the modification to the configuration
// file. This in turn will cause the overriden
// UrlConfigElement.IsModified() mathod to be called.
static void ModifyElement()
{
try
{
// Get the configuration file.
System.Configuration.Configuration config =
ConfigurationManager.OpenExeConfiguration(
ConfigurationUserLevel.None);
// Get the MyUrls section.
UrlsSection myUrlsSection =
config.GetSection("MyUrls") as UrlsSection;
UrlsCollection elements = myUrlsSection.Urls;
IEnumerator elemEnum =
elements.GetEnumerator();
int i = 0;
while (elemEnum.MoveNext())
{
if (elements[i].Name == "Microsoft")
{
elements[i].Port = 1010;
bool readOnly = elements[i].IsReadOnly();
break;
}
i += 1;
}
if (!myUrlsSection.ElementInformation.IsLocked)
{
config.Save(ConfigurationSaveMode.Full);
// This to obsolete the MyUrls cached
// section and read the updated version
// from the configuration file.
ConfigurationManager.RefreshSection("MyUrls");
}
else
Console.WriteLine(
"Section was locked, could not update.");
}
catch (ConfigurationErrorsException err)
{
Console.WriteLine("[ModifyElement: {0}]",
err.ToString());
}
}
' Show how to use IsModified.
' This method modifies the port property
' of the url element named Microsoft and
' saves the modification to the configuration
' file. This in turn will cause the overriden
' UrlConfigElement.IsModified() mathod to be called.
Shared Sub ModifyElement()
Try
' Get the current configuration file.
Dim config _
As System.Configuration.Configuration = _
ConfigurationManager.OpenExeConfiguration( _
ConfigurationUserLevel.None)
' Get the MyUrls section.
Dim myUrlsSection As UrlsSection = _
config.GetSection("MyUrls")
Dim elements As UrlsCollection = _
myUrlsSection.Urls
Dim elemEnum As IEnumerator = _
elements.GetEnumerator()
Dim i As Integer = 0
While elemEnum.MoveNext()
If elements(i).Name = "Microsoft" Then
elements(i).Port = 1010
Dim [readOnly] As Boolean = _
elements(i).IsReadOnly()
Exit While
End If
i += 1
End While
If Not myUrlsSection.ElementInformation.IsLocked Then
config.Save(ConfigurationSaveMode.Full)
' This to obsolete the MyUrls cached
' section and read the updated version
' from the configuration file.
ConfigurationManager.RefreshSection("MyUrls")
Else
Console.WriteLine("Section was locked, could not update.")
End If
Catch err As ConfigurationErrorsException
Console.WriteLine("[ModifyElement: {0}]", _
err.ToString())
End Try
End Sub
注解
方法IsModified确定调用 方法时Save是否ConfigurationElement将此对象写入配置文件。 如果返回的值为 false
,则表明配置文件表示该元素的当前状态。
默认情况下,IsModified在通过索引器将属性设置为此ConfigurationElement对象后返回 true
。
IsModified重写 方法以提供此ConfigurationElement元素状态的自定义指示。