예제 #1
0
파일: Message.cs 프로젝트: pnoodles/hfm-net
        private void SetPropertyValue(PropertyDescriptor classProperty, object value)
        {
            IConversionProvider conversionProvider = GetConversionProvider(classProperty);

            if (conversionProvider != null)
            {
                classProperty.SetValue(_message, conversionProvider.Convert(value));
            }
            else
            {
                Type propertyType = classProperty.PropertyType;
                if (propertyType.IsGenericType && propertyType.GetGenericTypeDefinition() == typeof(Nullable <>))
                {
                    propertyType = propertyType.GetGenericArguments().First();
                }
                // ReSharper disable AssignNullToNotNullAttribute
                classProperty.SetValue(_message, Convert.ChangeType(value, propertyType, CultureInfo.InvariantCulture));
                // ReSharper restore AssignNullToNotNullAttribute
            }
        }