変更を保存するASP.NET 4.0で実行されるカスタム構成セクションがあります。関連するクラスは次のとおりです。.NET ConfigurationElementCollection.Addメソッドがコレクションにアイテムを追加しない
- QueueConfiguration:のConfigurationElement
- QueueCollectionキュー//維持するキューのリストを
- QueueCollection:ConfigurationElementCollectionの
- キュー:のConfigurationElement
作品:
// This is a test case to ensure the basics work
Queue newQueue = new Queue();
QueueCollection queues = new QueueCollection();
queues.Add(newQueue); // queues.Count is incremented here
これは動作しません(と、エラーをスローしません):
// Read existing QueueConfiguration
Queue newQueue = new Queue();
QueueConfiguration queueConfig = ConfigurationManager.GetSection("Queuing") as QueueConfiguration;
queueConfig.Queues.Add(newQueue); // queues.Count is NOT incremented here
また、これは動作しません(と、エラーをスローしません):
// Load QueueConfiguration from web.config
Queue newQueue = new Queue();
Configuration config = WebConfigurationManager.OpenWebConfiguration("~");
QueueConfiguration queueConfig = config.GetSection("Queuing") as QueueConfiguration;
queueConfig.Queues.Add(newQueue); // queues.Count is NOT incremented here
て私の最初の3つの構成セクションのうちの1つが読み取り専用としてマークされていました。しかし、私がデバッグするとき、IsReadOnly()メソッドは、私のQueueConfigurationと私のQueueCollectionインスタンスに対してfalseを返します。
マイQueueCollectionクラスは、このスニペットが含まれています。私は、コードをステップ実行すると、この行に到達した
public void Add(Queue queue)
{
base.BaseAdd(queue, true);
}
、base.BaseAddが呼び出されますが、Countプロパティがインクリメントされません。あたかもBaseAddが要求を単に無視するかのようです。
提案がありますか? (私が何かを明らかにしていないことを願っています!)
サイト内のライブ設定ファイルを編集しようとしていますか? –
これは私の究極の目標です。他の設定セクションでもそれを成功させることができます。ただし、保存前にQueueCollectionにキューを追加する機能がなければ、保存は無意味です。 –