첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
유용한 소스 코드가 있으면 icodebroker@naver.com으로 보내주시면 감사합니다.
블로그 자료는 자유롭게 사용하세요.

■ TypeDescriptionProvider 클래스 : 객체 구하기

----------------------------------------------------------------------------------------------------

using System;

using System.ComponentModel;

 

/// <summary>

/// 데이터 항목

/// </summary>

public class DataItem

{

    //////////////////////////////////////////////////////////////////////////////////////////////////// Property

    ////////////////////////////////////////////////////////////////////////////////////////// Public

 

    #region 번호 - Number

 

    /// <summary>

    /// 번호

    /// </summary>

    public int Number { get; set; }

 

    #endregion

 

    #region 소스 문자열 - Source

 

    /// <summary>

    /// 소스 문자열

    /// </summary>

    public string Source { get; set; }

 

    #endregion

 

    //////////////////////////////////////////////////////////////////////////////////////////////////// Constructor

    ////////////////////////////////////////////////////////////////////////////////////////// Public

 

    #region 생성자 - DataItem(number, source)

 

    /// <summary>

    /// 생성자

    /// </summary>

    /// <param name="number">번호</param>

    /// <param name="source">소스 문자열</param>

    public DataItem(int number, string source)

    {

        Number = number;

        Source = source;

    }

 

    #endregion

}

 

DataItem dataItem = new DataItem(2, "Hi");

 

TypeDescriptionProvider typeDescriptionProvider =

    TypeDescriptor.AddAttributes(typeof(DataItem), new SerializableAttribute());

 

DataItem anotherDataItem = typeDescriptionProvider.CreateInstance

(

    null,

    typeof(DataItem),

    new Type[] { typeof(int), typeof(string) },

    new object[] { 100, "Hello" }

) as DataItem;

 

PropertyDescriptor propertyDescriptor = TypeDescriptor.CreateProperty

(

    anotherDataItem.GetType(),

    "Source",

    typeof(string),

    new DescriptionAttribute("New property")

);

 

Console.WriteLine(propertyDescriptor.GetValue(anotherDataItem));

----------------------------------------------------------------------------------------------------

Posted by 사용자 icodebroker

댓글을 달아 주세요