// WinConfiguration.cs
using System;
using System.Configuration;
namespace BANANA.Common
{
public class WinConfiguration : ConfigurationSection
{
public readonly static BANANA.Common.WinConfiguration Settings
= (BANANA.Common.WinConfiguration)System.Configuration.ConfigurationManager.GetSection("BANANA");
[ConfigurationProperty("connections")]
public ConnectionsCollection Connections
{
get { return (ConnectionsCollection)this["connections"]; }
}
[ConfigurationProperty("cryptography")]
public CryptographyCollection Cryptography
{
get { return (CryptographyCollection)this["cryptography"]; }
}
}
}
// app.config
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="BANANA" type="BANANA.Common.WinConfiguration"/>
</configSections>
<BANANA>
<connections>
<add name="SqlServer2008" connectionString="" providerName="System.Data.SqlClient" priority="100" />
</connections>
<cryptography>
<add type="DES" value="12345" />
<add type="TripleDES" value="12345" />
</cryptography>
</BANANA>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
</configuration>
以前は web.config で完全に機能していました。クラス名だけ変えました。これが私の web.config とカスタム構成クラスです。
// WebConfiguration.cs
using System;
using System.Configuration;
namespace BANANA.Common
{
public class WebConfiguration : ConfigurationSection
{
public readonly static BANANA.Common.WebConfiguration Settings = (BANANA.Common.WebConfiguration)System.Web.Configuration.WebConfigurationManager.GetSection("BANANA");
[ConfigurationProperty("connections")]
public ConnectionsCollection Connections
{
get { return (ConnectionsCollection)this["connections"]; }
}
[ConfigurationProperty("cryptography")]
public CryptographyCollection Cryptography
{
get { return (CryptographyCollection)this["cryptography"]; }
}
}
}
// web.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="BANANA" type="BANANA.Common.WebConfiguration"/>
</configSections>
<BANANA>
<connections>
<add name="SqlServer2008" connectionString="" providerName="System.Data.SqlClient" priority="100" />
</connections>
<cryptography>
<add type="DES" value="12345" />
<add type="TripleDES" value="12345" />
</cryptography>
</BANANA>
</configuration>
WebConfiguration.cs と web.config で問題なく動作します。しかし、WinConfiguration.cs と app.config を使用すると、「'BANANA.Common.WinConfiguration' の型初期化子が例外をスローしました。」のようなエラーが発生します。誰でもこのエラーを修正できますか?