如何从 MethodBase 中找出方法的返回类型?我正在使用 PostSharp 并尝试覆盖 CompileTimeValidate(MethodBase method) 方法以确保将属性应用于具有正确签名的方法。
谢谢,
如何从 MethodBase 中找出方法的返回类型?我正在使用 PostSharp 并尝试覆盖 CompileTimeValidate(MethodBase method) 方法以确保将属性应用于具有正确签名的方法。
谢谢,
MethodBase 用作MethodInfo的基类,它具有属性ReturnType。
您可以尝试转换为 MethodInfo 的实例并检查该属性。
MethodBase
它本身没有返回类型,因为除了普通方法之外,它还用于表示没有返回类型的方法,例如构造函数。相反,您需要查看它是否是一个实例MethodInfo
并检查该ReturnType
属性。
CompileTimeValidate(MethodBase method) {
var normalMethod = method as MethodInfo;
if( normalMethod != null) {
ValidateReturnType(normalMethod.ReturnType);
}
}
尝试这样的事情。MethodInfo
具有该属性,但MethodBase
也用于构造函数,并且它们没有返回类型。
MethodBase b = this.GetType().GetMethods().First();
if(b is MethodInfo)
MessageBox.Show((b as MethodInfo).ReturnType.Name);
试试MethodInfo.ReturnType
物业。
要获取返回类型属性,首先获取Type
. 从Type
,得到MethodInfo
。从MethodInfo
,得到ReturnType
。
看来你不能用 MethodBase 来做......
http://msdn.microsoft.com/en-us/library/system.reflection.methodinfo.returntype.aspx