첨부 소스 코드는 나눔고딕코딩 폰트를 사용합니다.
728x90
반응형
728x170

▶ TypeConverter 클래스 : ConvertFrom 메소드를 사용해 지정 타입 변환하기 예제

using System;

int value = ConversionHelper.Convert<int>("10");

Console.WriteLine(value);

 

728x90

 

▶ TypeConverter 클래스 : ConvertFrom 메소드를 사용해 지정 타입 변환하기

using System;
using System.ComponentModel;

/// <summary>
/// 변환 헬퍼
/// </summary>
public static class ConversionHelper
{
    //////////////////////////////////////////////////////////////////////////////////////////////////// Method
    ////////////////////////////////////////////////////////////////////////////////////////// Static
    //////////////////////////////////////////////////////////////////////////////// Public

    #region 변환하기 - Convert(sourceValue, targetType)

    /// <summary>
    /// 변환하기
    /// </summary>
    /// <param name="sourceValue">소스 값</param>
    /// <param name="targetType">타겟 타입</param>
    /// <returns>변환 값</returns>
    public static object Convert(object sourceValue, Type targetType)
    {
        TypeConverter converter = TypeDescriptor.GetConverter(targetType);

        return converter.ConvertFrom(sourceValue);
    }

    #endregion
    #region 변환하기 - Convert<TTarget>(sourceValue)

    /// <summary>
    /// 변환하기
    /// </summary>
    /// <typeparam name="TTarget">타겟 타입</typeparam>
    /// <param name="sourceValue">소스 값</param>
    /// <returns>변환 값</returns>
    public static TTarget Convert<TTarget>(object sourceValue)
    {
        return (TTarget)Convert(sourceValue, typeof(TTarget));
    }

    #endregion

    #region 타입 변환자 등록하기 - RegisterTypeConverter<TTarget, TConverter>()

    /// <summary>
    /// 타입 변환자 등록하기
    /// </summary>
    /// <typeparam name="TTarget">타겟 타입</typeparam>
    /// <typeparam name="TConverter">변환자 타입</typeparam>
    public static void RegisterTypeConverter<TTarget, TConverter>() where TConverter : TypeConverter
    {
        TypeDescriptor.AddAttributes(typeof(TTarget), new TypeConverterAttribute(typeof(TConverter)));
    }

    #endregion
}
728x90
반응형
그리드형(광고전용)
Posted by icodebroker

댓글을 달아 주세요