Esempio n. 1
0
            protected override IValueProvider CreateMemberValueProvider(MemberInfo member)
            {
                var valueProvider = base.CreateMemberValueProvider(member);

                if (member is PropertyInfo propertyInfo)
                {
                    var propertyTypeInfo = propertyInfo.PropertyType.GetTypeInfo();
                    if (propertyTypeInfo.IsGenericType && !propertyTypeInfo.IsGenericTypeDefinition)
                    {
                        var genericTypeDefinition = propertyTypeInfo.GetGenericTypeDefinition();
                        if (genericTypeDefinition == s_openStringEnumValueType || genericTypeDefinition == s_openNaType)
                        {
                            valueProvider = new StringValueProvider(valueProvider);
                        }
                    }
                }
                return(valueProvider);
            }
Esempio n. 2
0
            protected override IValueProvider CreateMemberValueProvider(MemberInfo member)
            {
                var valueProvider = base.CreateMemberValueProvider(member);

                if (member is PropertyInfo propertyInfo)
                {
                    var propertyType     = propertyInfo.PropertyType;
                    var propertyTypeInfo = propertyType.GetTypeInfo();
                    if (propertyTypeInfo.IsGenericType && !propertyTypeInfo.IsGenericTypeDefinition)
                    {
                        var genericTypeDefinition = propertyTypeInfo.GetGenericTypeDefinition();
                        if (genericTypeDefinition == TypeData.OpenStringEnumValueType || genericTypeDefinition == TypeData.OpenNaType)
                        {
                            var propertyContract = ResolveContract(propertyType);
                            valueProvider = new StringValueProvider(valueProvider, (IStringCreator)propertyContract.Converter);
                        }
                    }
                }
                return(valueProvider);
            }