本文整理汇总了C#中System.Reflection.MethodInfo.GetRuntimeBaseDefinition方法的典型用法代码示例。如果您正苦于以下问题:C# MethodInfo.GetRuntimeBaseDefinition方法的具体用法?C# MethodInfo.GetRuntimeBaseDefinition怎么用?C# MethodInfo.GetRuntimeBaseDefinition使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Reflection.MethodInfo
的用法示例。
在下文中一共展示了MethodInfo.GetRuntimeBaseDefinition方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetSlotForOverride
/////////////////////////////////////////////////////////////////////////////////
private SymWithType GetSlotForOverride(MethodInfo method)
{
if (method.IsVirtual && method.IsHideBySig)
{
MethodInfo baseMethodInfo = method.GetRuntimeBaseDefinition();
if (baseMethodInfo == method)
{
// We just found ourselves, so we don't care here.
return null;
}
// We have the base class method that we're overriding. We can assume
// that all the parent aggregate symbols were added, and that we added
// the methods in order. As such, our parent methods should be in the
// symbol table at this point.
AggregateSymbol aggregate = GetCTypeFromType(baseMethodInfo.DeclaringType).getAggregate();
MethodSymbol baseMethod = FindMethodFromMemberInfo(baseMethodInfo);
// This assert is temporarily disabled to improve testability of the area on .NetNative
//Debug.Assert(baseMethod != null);
if ((object)baseMethod == null)
{
throw Error.InternalCompilerError();
}
return new SymWithType(baseMethod, aggregate.getThisType());
}
return null;
}
示例2: GetSlotForOverride
/////////////////////////////////////////////////////////////////////////////////
private SymWithType GetSlotForOverride(MethodInfo method)
{
if (method.IsVirtual && method.IsHideBySig)
{
MethodInfo baseMethodInfo = method.GetRuntimeBaseDefinition();
if (baseMethodInfo == method)
{
// We just found ourselves, so we dont care here.
return null;
}
// We have the base class method that we're overriding. We can assume
// that all the parent aggregate symbols were added, and that we added
// the methods in order. As such, our parent methods should be in the
// symbol table at this point.
AggregateSymbol aggregate = GetCTypeFromType(baseMethodInfo.DeclaringType).getAggregate();
MethodSymbol baseMethod = FindMethodFromMemberInfo(baseMethodInfo);
Debug.Assert(baseMethod != null);
return new SymWithType(baseMethod, aggregate.getThisType());
}
return null;
}