오늘은 저번에 다룬  내용을 조금 더 심화시켜 보려한다.
음 저번에 다룬 내용은 nested element  를 선언하고 사용하는 방법이었는데 저번에 다룬 nested element 는 단순히 하나의 instance로 제한되어 있었고 코드로 정의된 element 내에서 나타내야만 했다.
이런 element를 Collection 형태로 하거나 element list 로 구성하는 것은 약간은 다른 접근이 필요하다.

이번에도 저번과 마찬가지로 기존에 만들어 오던 소스에 덫붙여 나가도록 하겠다. ^^

먼저 Configuration file 내에 Element를 Collection  혹은 List 형태로 구성하기 위해서는 ConfigurationElementCollection Class 로 부터 상속을 받아야만 한다.

Configuration File 의 <appSettings> Configuration Section을 사용하던 개발자는 Add/Remove/Cear - 짧게는 ARC Map 에 익숙할 터인데 이 ARC Map 은 ASP.NET Web.config 에서 지원되는 Cascading Collection 이다.
ASP.NET 의 경우 하위 Folder Path 의 Web.Config 의 configuration 내용이 상위 폴더의 config 내용에 Add/Remove/Clear 되어 적용된다.

이런 ARC Map 가 기본적인 Type 으로 이와 같은 Configuration을 구성해보려한다.

Configuration 의 내용을 보면 다음과 같다.


    1 Imports System.Configuration

    2 

    3 Public Class AddressElement

    4   Inherits ConfigurationElement

    5 

    6   Shared _properties As ConfigurationPropertyCollection

    7 

    8   Shared _propertyName As ConfigurationProperty

    9   Shared _propertyPhone As ConfigurationProperty

   10   Shared _propertyEmail As ConfigurationProperty

   11 

   12   Shared Sub New()

   13     _propertyName = New ConfigurationProperty("name", GetType(String), Nothing, ConfigurationPropertyOptions.IsRequired)

   14     _propertyPhone = New ConfigurationProperty("phone", GetType(String), Nothing, ConfigurationPropertyOptions.None)

   15     _propertyEmail = New ConfigurationProperty("email", GetType(String), Nothing, ConfigurationPropertyOptions.None)

   16 

   17     _properties = New ConfigurationPropertyCollection()

   18     _properties.Add(_propertyName)

   19     _properties.Add(_propertyPhone)

   20     _properties.Add(_propertyEmail)

   21   End Sub

   22 

   23 End Class


일단 졸음이 몰려오는 관계루다가... 요까이 먼저 하고...
내일 나머지를 올리는 게 좋을 듯하다... ^^ 죄송.


행복한 고수되셔요...

woojja ))*
\\\\\\\\\\\\\\\\\\\\\\\
반응형

+ Recent posts