private void AssignRequiredDao(Type modType, IGameModule modInst) { MemberInfo[] members = modType.GetMembers(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance); foreach (var member in members) { if (member.IsDefined(typeof(RequireDaoAttribute))) { if (member.MemberType == MemberTypes.Field) { FieldInfo field = (FieldInfo)member; Type reqType = field.FieldType; field.SetValue(modInst, Daos.GetDao(reqType)); } if (member.MemberType == MemberTypes.Property) { PropertyInfo prop = (PropertyInfo)member; Type reqType = prop.PropertyType; prop.SetValue(modInst, Daos.GetDao(reqType)); } } } }