public RuntimeMember GetConstructor(int parameterCount) { RuntimeMember runtimeMember = FindInstance(Type, ".ctor", parameterCount); if (runtimeMember == null) { throw new ConstructorMissingException(Type, parameterCount); } return(runtimeMember); }
public static RuntimeMember GetInstance(TypedValue instance, string memberName, int parameterCount) { RuntimeMember runtimeMember = FindInstance(instance.Value, memberName, parameterCount); if (runtimeMember == null) { throw new MemberMissingException(instance.Type, memberName, parameterCount); } return(runtimeMember); }
private RuntimeMember FindMemberByName(object instance, Type targetType) { foreach (MemberInfo memberInfo in targetType.GetMembers(flags | BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.FlattenHierarchy)) { if (!memberName.Matches(memberInfo.Name.Replace("_", string.Empty))) { continue; } RuntimeMember runtimeMember = MakeMember(memberInfo, instance); if (Matches(runtimeMember)) { return(runtimeMember); } } return(null); }
private bool Matches(RuntimeMember runtimeMember) { if (!runtimeMember.MatchesParameterCount(parameterCount)) { return(false); } if (parameterTypes == null) { return(true); } for (int i = 0; i < parameterCount; i++) { if (runtimeMember.GetParameterType(i) != parameterTypes[i]) { return(false); } } return(true); }
public RuntimeMember Find(object instance) { object target = instance; while (target != null) { RuntimeMember member = FindMember(target); if (member != null) { return(member); } var adapter = target as DomainAdapter; if (adapter == null) { break; } target = adapter.SystemUnderTest; if (target == adapter) { break; } } return(null); }
private bool Matches(RuntimeMember runtimeMember) { if (!runtimeMember.MatchesParameterCount(parameterCount)) return false; if (parameterTypes == null) return true; for (int i = 0; i < parameterCount; i++) { if (runtimeMember.GetParameterType(i) != parameterTypes[i]) return false; } return true; }