Почему контроллер не заходит в функцию Create? - PullRequest
0 голосов
/ 17 февраля 2012

У меня есть некоторый обычный раздел, определенный в отдельном файле, но когда я вызываю

ConfigurationManager.GetSection("Group/Group1/screen1")

, контроллер не входит в метод Create, а код выше возвращает null, что не так?чего-то не хватает?

web.Config:

<configSections>
  <sectionGroup name="Group">
    <section name="Group1" type="Handler"
      allowLocation="true"
      allowDefinition="Everywhere">
    </section>      
  </sectionGroup>   
</configSections>
<Group>
   <Group1 configSource="folder1\custom.config" />    
</Group>

Custom.config:

 <?xml version="1.0"?>
 <Group>
   <Group1>
     <Screen1>           
         <Property1>0</Property1>
         <Property2>1</Property2>
    </Screen1>
    <Screen2>
        <Property1>1</Property1>
        <Property2>Create</Property2>
    </Screen2>
   </Group1>   
   <Group2>
     <Screen1>           
         <Property1>0</Property1>
         <Property2>1</Property2>
    </Screen1>
    <Screen2>
        <Property1>1</Property1>
        <Property2>Create</Property2>
    </Screen2>
   </Group2>      
 </Group>

Обработчик:

 public class Handler: IConfigurationSectionHandler
{        
    public object Create(object parent, object configContext, XmlNode section)
    {
         **debugger**
         // Some processing
        // return object
    }
}

1 Ответ

0 голосов
/ 21 февраля 2012

Я думаю, что ваш custom.config должен начинаться с элемента Group1, а не с элемента Group, или configSource должен применяться к Group.В любом случае, корневой элемент указанного конфигурационного файла должен иметь тот же тип элемента, к которому применяется configSource.

Итак, в вашем web.config звучит так:

<Group configSource="folder1\custom.config" />

Всякий раз, когда вы используете configSource, элементы должны совпадать с обеих сторон, например, если у вас есть:

<Spargle configSource="place1.config" />

Тогда элемент root элемента place1.config имеетбыть <Spargle>:

<?xml version="1.0"?>
<Spargle>
    <Floom/>
</Spargle>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...