/// <summary> /// Ctor. /// </summary> /// <param name="beanEventType">target type</param> /// <param name="properties">written properties</param> /// <param name="importService">for resolving write methods</param> /// <throws>EventBeanManufactureException if the write method lookup fail</throws> public EventBeanManufacturerBeanForge( BeanEventType beanEventType, WriteablePropertyDescriptor[] properties, ImportService importService ) { _beanEventType = beanEventType; _properties = properties; _importService = importService; _beanInstantiator = BeanInstantiatorFactory.MakeInstantiator(beanEventType, importService); _writeMembersReflection = new MemberInfo[properties.Length]; _primitiveType = new bool[properties.Length]; for (var i = 0; i < properties.Length; i++) { _writeMembersReflection[i] = properties[i].WriteMember; _primitiveType[i] = properties[i].PropertyType.IsValueType && properties[i].PropertyType.CanNotBeNull(); } }
/// <summary> /// Ctor. /// </summary> /// <param name="beanEventType">target type</param> /// <param name="service">factory for events</param> /// <param name="properties">written properties</param> /// <param name="importService">for resolving write methods</param> /// <throws>EventBeanManufactureException if the write method lookup fail</throws> public EventBeanManufacturerBean( BeanEventType beanEventType, EventBeanTypedEventFactory service, WriteablePropertyDescriptor[] properties, ImportService importService) { this.beanEventType = beanEventType; this.service = service; beanInstantiator = BeanInstantiatorFactory.MakeInstantiator(beanEventType, importService) .BeanInstantiator; writeMembersReflection = new MemberInfo[properties.Length]; var primitiveTypeCheck = false; primitiveType = new bool[properties.Length]; for (var i = 0; i < properties.Length; i++) { writeMembersReflection[i] = properties[i].WriteMember; primitiveType[i] = properties[i].PropertyType.IsValueType; primitiveTypeCheck |= primitiveType[i]; } hasPrimitiveTypes = primitiveTypeCheck; }