private static string GetChildsName(Human human) { var namingMethod = human.GetType().GetMethods() .First(x => x.Name == Human.ChildNamingMethod && x.ReturnType == typeof(string)); try { return namingMethod.Invoke(human, null) as string; } catch (Exception e) { throw new Exception(Resources.AdvancedGod_ChildNamingNotSupported, e); } }
private static CoupleAttribute GetAttribute(Human firstHuman, Human secondHuman) { var enumerator = new CoupleAttributeEnumerator(firstHuman.GetType()); while (enumerator.MoveNext()) { if (enumerator.Current.Pair.Equals(secondHuman.GetType().Name)) { return enumerator.Current; } } throw new WrongCoupleException(Resources.AdvancedGod_IncompatibleTypes); }