/// <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();
            }
        }
Ejemplo n.º 2
0
        /// <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;
        }