2009-09-01 6 views
1

Если я не делаю что-то не так, как я должны использовать ConfigurationSection, ConfigurationElement и ConfigurationElementCollection, мне бы потребовались, чтобы отформатировать раздел конфигурации следующим образом:web.config пользовательских ConfigurationSection и ненужное многословие

<serviceAuthorization> 
    <credentials> 
     <login username="system" password="password" mode="include"> 
      <services> 
       <service type="AxeFrog.Mobile.Service.Security.AuthenticationService, AxeFrog.Mobile.Service" /> 
       <service type="AxeFrog.Mobile.Service.Security.AnotherService, AxeFrog.Mobile.Service" /> 
      </services> 
     </login> 
     <login username="test" password="pass" mode="exclude" /> 
    </credentials> 
</serviceAuthorization> 

I я бы предпочел бы, если бы я немного больше сказал в формате. Я хотел бы, чтобы отформатировать раздел как это:

<serviceAuthorization> 
    <login username="system" password="password" mode="include"> 
     <service type="AxeFrog.Mobile.Service.Security.AuthenticationService, AxeFrog.Mobile.Service" /> 
     <service type="AxeFrog.Mobile.Service.Security.AnotherService, AxeFrog.Mobile.Service" /> 
    </login> 
    <login username="test" password="pass" mode="exclude" /> 
</serviceAuthorization> 

Есть ли способ я могу получить XML раздела конфигурации и просто прочитать его сам?

ответ

1

Вы можете реализовать System.Configuration.IConfigurationSectionHandler и настроить его:

<section name="serviceAuthorization" type="[your-type]"/> 

Тогда вы получите всю вашу section, как XmlNode и может анализировать вашу пользовательскую схему.

Редактировать: это устарело. вот один new way, чтобы сделать это.

+0

Как я понимаю, IConfigurationSectionHandler устарел –

+0

Вы абсолютно правы. Я добавил его к моему ответу. –

0

Ну, вы могли бы сделать, например:

string docName=System.Web.HttpContext.Current.Server.MapPath("Web.config"); 
XmlDocument configDoc = new XmlDocument(); 
configDoc.Load(docName); 

, а затем работать с configDoc.

+1

Я знаю об этом маршруте; Я просто надеялся на что-то немного менее грубое. –