Чтобы правильно ответить на ваш вопрос, нам, вероятно, понадобится код из обработчика пользовательского раздела.
Однако, один момент, который сразу же приходит на ум, это то, что вы, возможно, неправильно используете аргумент parent
, который передается вашему обработчику.
Чтобы получить нашу терминологию на той же странице, я буду ссылаться на метод 'Create', который является вашей реализацией IConfigurationSectionHandler.Create
, и на configuration object
, который является объектом, который вы возвращаете из 'Create 'method.
Очень просто, метод обработчиков вашего раздела Create
должен вызываться для каждого вхождения вашего пользовательского раздела в иерархии файлов web.config.При каждом вызове предыдущий объект конфигурации, который вы возвращали из Create
, передается в следующий вызов в качестве аргумента parent
, конечно, первый вызов будет иметь родительский элемент null
, который указывает, что вам нужно создать эту начальную 'конфигурациюobject ', последующие вызовы не должны создавать новый configuration objec
t, но должны добавлять или изменять тот, который передается как родительский.
Конечный результат заключается в том, что при чтении конфигурации из файла вы получаете «объект конфигурации», который содержит сумму настроек всех уровней.
NB: Вы действительно должны использовать ConfigurationSection , так как IConfigurationSectionHandler не рекомендуется с Framework 2.0.Вот ссылка на использование этого класса.
http://msdn.microsoft.com/en-us/library/2tw134k3.aspx