public static MakeGeneric ( TypeReference declaringType, |
||
declaringType | TypeReference | |
self | ||
return |
void ProcessChildNode(TypeNode node, MethodReference changedInvokerMethod) { var childEventInvoker = FindEventInvokerMethod(node.TypeDefinition); if (childEventInvoker == null) { if (changedInvokerMethod != null) { if (node.TypeDefinition.BaseType.IsGenericInstance) { var methodReference = MethodGenerifier.MakeGeneric(node.TypeDefinition.BaseType, changedInvokerMethod); changedInvokerMethod = methodReference; } } } else { changedInvokerMethod = childEventInvoker; } node.IsChangedInvoker = changedInvokerMethod; foreach (var childNode in node.Nodes) { ProcessChildNode(childNode, changedInvokerMethod); } }
void ProcessChildNode(TypeNode node, EventInvokerMethod eventInvoker) { var childEventInvoker = FindEventInvokerMethod(node.TypeDefinition); if (childEventInvoker == null) { if (node.TypeDefinition.BaseType.IsGenericInstance) { var methodReference = MethodGenerifier.MakeGeneric(node.TypeDefinition.BaseType, eventInvoker.MethodReference); eventInvoker = new EventInvokerMethod { IsBeforeAfter = eventInvoker.IsBeforeAfter, MethodReference = methodReference, }; } } else { eventInvoker = childEventInvoker; } node.EventInvoker = eventInvoker; foreach (var childNode in node.Nodes) { ProcessChildNode(childNode, eventInvoker); } }