MethodInfo 서명 가져오기
-
11-12-2019 - |
문제
myMethod 메소드와 관련된 MethodInfo가 있다고 가정해 보겠습니다.
void myMethod(int param1, int param2) { }
메소드의 시그니처를 나타내는 문자열을 생성하려고 합니다.
string myString = "myMethod (int, int)";
MethodInfo 매개 변수를 반복하면서 매개 변수 유형의 ToString 메서드를 호출하여 이러한 결과를 얻을 수 있었습니다.
"myMethod (System.Int32, System.Int32)"
이 문제를 어떻게 개선하고 위에 표시된 결과를 생성할 수 있습니까?
다른 팁
내가 아는 한, 진짜 기본 요소의 유형 이름(System.Int32
)을 내장 별칭(int
).이러한 별칭의 수가 매우 적기 때문에 자신만의 메서드를 작성하는 것이 그리 어렵지 않습니다.
public static string GetTypeName(Type type)
{
if (type == typeof(int)) // Or "type == typeof(System.Int32)" -- same either way
return "int";
else if (type == typeof(long))
return "long";
...
else
return type.Name; // Or "type.FullName" -- not sure if you want the namespace
}
즉, 사용자가 실제로 했다 입력하다 System.Int32
오히려 int
(물론 완벽하게 합법적입니다) 이 기술은 여전히 "int"를 인쇄합니다.그것에 대해 당신이 할 수 있는 일은 많지 않습니다. System.Type
어느 쪽이든 동일합니다. 따라서 사용자가 실제로 어떤 변형을 입력했는지 알아낼 수 있는 방법이 없습니다.
제휴하지 않습니다 StackOverflow