728x90
반응형
728x170
using System;
using System.Reflection;
#region 메소드 실행하기 - ExecuteMethod(instance, methodName, parameterTypeArray, parameterArray)
/// <summary>
/// 메소드 실행하기
/// </summary>
/// <param name="instance">인스턴스</param>
/// <param name="methodName">메소드명</param>
/// <param name="parameterTypeArray">매개 변수 타입 배열</param>
/// <param name="parameterArray">매개 변수 배열</param>
/// <returns>실행 결과</returns>
public object ExecuteMethod(object instance, string methodName, Type[] parameterTypeArray, params object[] parameterArray)
{
if(parameterTypeArray == null && parameterArray.Length > 0)
{
return instance.GetType().GetMethod
(
methodName,
BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static |
BindingFlags.Instance | BindingFlags.IgnoreCase | BindingFlags.InvokeMethod
).Invoke(instance, parameterArray);
}
else
{
return instance.GetType().GetMethod
(
methodName,
BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static |
BindingFlags.Instance | BindingFlags.IgnoreCase | BindingFlags.InvokeMethod,
null,
parameterTypeArray,
null
).Invoke(instance, parameterArray);
}
}
#endregion
#region 메소드 실행하기 - ExecuteMethod(instance, methodName, parameterArray)
/// <summary>
/// 메소드 실행하기
/// </summary>
/// <param name="instance">인스턴스</param>
/// <param name="methodName">메소드명</param>
/// <param name="parameterArray">매개 변수 배열</param>
/// <returns>실행 결과</returns>
public object ExecuteMethod(object instance, string methodName, params object[] parameterArray)
{
Type[] parameterTypeArray = null;
if(parameterArray != null)
{
int parameterArrayLength = parameterArray.Length;
parameterTypeArray = new Type[parameterArrayLength];
for(int i = 0; i < parameterArrayLength; i++)
{
if(parameterArray[i] == null)
{
parameterTypeArray = null;
break;
}
parameterTypeArray[i] = parameterArray[i].GetType();
}
}
return ExecuteMethod(instance, methodName, parameterTypeArray, parameterArray);
}
#endregion
728x90
반응형
그리드형(광고전용)
'C# > Common' 카테고리의 다른 글
[C#/COMMON] 인스턴스 직렬화 처리하기 (0) | 2020.02.02 |
---|---|
[C#/COMMON] COM 인스턴스 생성하기 (0) | 2020.02.02 |
[C#/COMMON] 인스턴스 생성하기 (0) | 2020.02.02 |
[C#/COMMON] 인스턴스 생성하기 (0) | 2020.02.02 |
[C#/COMMON] Type 클래스 : 타입명으로 타입 구하기 (0) | 2020.02.02 |
[C#/COMMON] Stream 클래스 : 스트림 복사하기 (0) | 2020.02.02 |
[C#/COMMON] IDataReader 인터페이스 : 열거 가능형 구하기 (0) | 2020.02.02 |
[C#/COMMON] IDataReader 인터페이스 : 제네릭 리스트 구하기 (0) | 2020.02.02 |
[C#/COMMON] 객체 값 복사하기 (0) | 2020.02.02 |
[C#/COMMON] DataRow 클래스 : 객체에서 값 복사하기 (0) | 2020.02.02 |
댓글을 달아 주세요