ConfigurationErrorsException 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
發生組態錯誤時所擲回的例外狀況。
public ref class ConfigurationErrorsException : System::Configuration::ConfigurationException
public class ConfigurationErrorsException : System.Configuration.ConfigurationException
[System.Serializable]
public class ConfigurationErrorsException : System.Configuration.ConfigurationException
type ConfigurationErrorsException = class
inherit ConfigurationException
[<System.Serializable>]
type ConfigurationErrorsException = class
inherit ConfigurationException
Public Class ConfigurationErrorsException
Inherits ConfigurationException
- 繼承
- 屬性
範例
下列程式代碼範例會建立自定義區段,並在修改其屬性時產生 ConfigurationErrorsException 例外狀況。
using System;
using System.Configuration;
using System.Collections.Specialized;
using System.Collections;
namespace Samples.AspNet
{
// Define a custom section.
public sealed class CustomSection :
ConfigurationSection
{
public CustomSection()
{
}
[ConfigurationProperty("fileName", DefaultValue = "default.txt",
IsRequired = true, IsKey = false)]
[StringValidator(InvalidCharacters = " ~!@#$%^&*()[]{}/;'\"|\\",
MinLength = 1, MaxLength = 60)]
public string FileName
{
get
{
return (string)this["fileName"];
}
set
{
this["fileName"] = value;
}
}
[ConfigurationProperty("maxUsers", DefaultValue = (long)10,
IsRequired = false)]
[LongValidator(MinValue = 1, MaxValue = 100,
ExcludeRange = false)]
public long MaxUsers
{
get
{
return (long)this["maxUsers"];
}
set
{
this["maxUsers"] = value;
}
}
}
// Create the custom section and write it to
// the configuration file.
class UsingConfigurationErrorsException
{
// Create a custom section.
static UsingConfigurationErrorsException()
{
// Get the application configuration file.
System.Configuration.Configuration config =
ConfigurationManager.OpenExeConfiguration(
ConfigurationUserLevel.None);
// If the section does not exist in the configuration
// file, create it and save it to the file.
if (config.Sections["CustomSection"] == null)
{
CustomSection custSection = new CustomSection();
config.Sections.Add("CustomSection", custSection);
custSection =
config.GetSection("CustomSection") as CustomSection;
custSection.SectionInformation.ForceSave = true;
config.Save(ConfigurationSaveMode.Full);
}
}
// Modify a custom section and cause configuration
// error exceptions.
static void ModifyCustomSection()
{
try
{
// Get the application configuration file.
System.Configuration.Configuration config =
ConfigurationManager.OpenExeConfiguration(
ConfigurationUserLevel.None);
CustomSection custSection =
config.Sections["CustomSection"] as CustomSection;
// Change the section properties.
custSection.FileName = "newName.txt";
// Cause an exception.
custSection.MaxUsers = custSection.MaxUsers + 100;
if (!custSection.ElementInformation.IsLocked)
config.Save();
else
Console.WriteLine(
"Section was locked, could not update.");
}
catch (ConfigurationErrorsException err)
{
string msg = err.Message;
Console.WriteLine("Message: {0}", msg);
string fileName = err.Filename;
Console.WriteLine("Filename: {0}", fileName);
int lineNumber = err.Line;
Console.WriteLine("Line: {0}", lineNumber.ToString());
string bmsg = err.BareMessage;
Console.WriteLine("BareMessage: {0}", bmsg);
string source = err.Source;
Console.WriteLine("Source: {0}", source);
string st = err.StackTrace;
Console.WriteLine("StackTrace: {0}", st);
}
}
static void Main(string[] args)
{
ModifyCustomSection();
}
}
}
Imports System.Configuration
Imports System.Collections.Specialized
Imports System.Collections
' Define a custom section.
NotInheritable Public Class CustomSection
Inherits ConfigurationSection
Public Sub New()
End Sub
<ConfigurationProperty("fileName", DefaultValue:="default.txt", IsRequired:=True, IsKey:=False), StringValidator(InvalidCharacters:=" ~!@#$%^&*()[]{}/;'""|\", MinLength:=1, MaxLength:=60)> _
Public Property FileName() As String
Get
Return CStr(Me("fileName"))
End Get
Set(ByVal value As String)
Me("fileName") = value
End Set
End Property
<ConfigurationProperty("maxUsers", DefaultValue:=10, IsRequired:=False), LongValidator(MinValue:=1, MaxValue:=100, ExcludeRange:=False)> _
Public Property MaxUsers() As Long
Get
Return Fix(Me("maxUsers"))
End Get
Set(ByVal value As Long)
Me("maxUsers") = value
End Set
End Property
End Class
' Create the custom section and write it to
' the configuration file.
Class UsingConfigurationErrorsException
' Create a custom section.
Shared Sub New()
' Get the application configuration file.
Dim config _
As System.Configuration.Configuration = _
ConfigurationManager.OpenExeConfiguration( _
ConfigurationUserLevel.None)
' If the section does not exist in the configuration
' file, create it and save it to the file.
If config.Sections("CustomSection") Is Nothing Then
Dim custSection As New CustomSection()
config.Sections.Add("CustomSection", custSection)
custSection = config.GetSection("CustomSection")
custSection.SectionInformation.ForceSave = True
config.Save(ConfigurationSaveMode.Full)
End If
End Sub
' Modify a custom section and cause configuration
' error exceptions.
Shared Sub ModifyCustomSection()
Try
' Get the application configuration file.
Dim config _
As System.Configuration.Configuration = _
ConfigurationManager.OpenExeConfiguration( _
ConfigurationUserLevel.None)
Dim custSection _
As CustomSection = _
config.Sections("CustomSection")
' Change the section properties.
custSection.FileName = "newName.txt"
' Cause an exception.
custSection.MaxUsers = _
custSection.MaxUsers + 100
If Not custSection.ElementInformation.IsLocked Then
config.Save()
Else
Console.WriteLine( _
"Section was locked, could not update.")
End If
Catch err As ConfigurationErrorsException
Dim msg As String = err.Message
Console.WriteLine("Message: {0}", msg)
Dim fileName As String = err.Filename
Console.WriteLine("Filename: {0}", _
fileName)
Dim lineNumber As Integer = err.Line
Console.WriteLine("Line: {0}", _
lineNumber.ToString())
Dim bmsg As String = err.BareMessage
Console.WriteLine("BareMessage: {0}", bmsg)
Dim src As String = err.Source
Console.WriteLine("Source: {0}", src)
Dim st As String = err.StackTrace
Console.WriteLine("StackTrace: {0}", st)
End Try
End Sub
Shared Sub Main(ByVal args() As String)
ModifyCustomSection()
End Sub
End Class
下列範例是上一個範例所使用的組態摘錄。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="CustomSection" type="Samples.AspNet.CustomSection,
ConfigurationErrorsException, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=null" allowDefinition="Everywhere"
allowExeDefinition="MachineToApplication"
restartOnExternalChanges="true" />
</configSections>
<CustomSection fileName="default.txt" maxUsers="10" />
</configuration>
備註
ConfigurationErrorsException讀取或寫入組態信息時發生任何錯誤時,就會擲回例外狀況。
建構函式
屬性
BareMessage |
取得擲回此組態例外狀況原因的描述。 |
BareMessage |
取得擲回此組態例外狀況原因的描述。 (繼承來源 ConfigurationException) |
Data |
取得鍵值組的集合,這些鍵值組會提供關於例外狀況的其他使用者定義資訊。 (繼承來源 Exception) |
Errors |
取得錯誤的集合,這些錯誤會詳細說明擲回此 ConfigurationErrorsException 例外狀況的理由。 |
Filename |
取得導致此組態例外狀況擲回的組態檔之路徑。 |
HelpLink |
取得或設定與這個例外狀況相關聯的說明檔連結。 (繼承來源 Exception) |
HResult |
取得或設定 HRESULT,它是指派給特定例外狀況的編碼數值。 (繼承來源 Exception) |
InnerException |
取得造成目前例外狀況的 Exception 執行個體。 (繼承來源 Exception) |
Line |
取得組態檔中擲回此組態例外狀況的行號。 |
Message |
取得擲回此組態例外狀況原因的擴充描述。 |
Source |
取得或設定造成錯誤的應用程式或物件的名稱。 (繼承來源 Exception) |
StackTrace |
取得呼叫堆疊上即時運算框架的字串表示。 (繼承來源 Exception) |
TargetSite |
取得擲回目前例外狀況的方法。 (繼承來源 Exception) |
方法
Equals(Object) |
判斷指定的物件是否等於目前的物件。 (繼承來源 Object) |
GetBaseException() |
在衍生類別中覆寫時,傳回一或多個後續的例外狀況的根本原因 Exception。 (繼承來源 Exception) |
GetFilename(XmlNode) |
取得當擲回此組態例外狀況時,載入內部 XmlNode 物件的來源組態檔之路徑。 |
GetFilename(XmlReader) |
取得當擲回此組態例外狀況時,內部 XmlReader 正在讀取的組態檔之路徑。 |
GetHashCode() |
做為預設雜湊函式。 (繼承來源 Object) |
GetLineNumber(XmlNode) |
取得當擲回此組態例外狀況時,內部 XmlNode 物件在組態檔中表示的行號。 |
GetLineNumber(XmlReader) |
取得當擲回此組態例外狀況時,內部 XmlReader 物件在組態檔中處理的行號。 |
GetObjectData(SerializationInfo, StreamingContext) |
已淘汰.
以發生這個組態例外狀況的檔案名稱和行號,設定 SerializationInfo 物件。 |
GetType() |
取得目前執行個體的執行階段類型。 (繼承來源 Exception) |
MemberwiseClone() |
建立目前 Object 的淺層複製。 (繼承來源 Object) |
ToString() |
建立並傳回目前例外狀況的字串表示。 (繼承來源 Exception) |
事件
SerializeObjectState |
已淘汰.
當例外狀況序列化,以建立包含例外狀況相關序列化資料的例外狀況狀態物件時,就會發生此事件。 (繼承來源 Exception) |