Exemplo n.º 1
0
        public PrintingConfig <TOwner> SetSerializerFor <T>(Func <T, string> serializer)
        {
            var newConfig = new PrintingConfig <TOwner>(this);

            newConfig.state.AltSerializerForType = state.AltSerializerForType.AddOrUpdate(typeof(T), serializer);
            return(newConfig);
        }
Exemplo n.º 2
0
        public PrintingConfig <TOwner> Exclude <TExcluded>()
        {
            var newConfig = new PrintingConfig <TOwner>(this);

            newConfig.state.ExcludedTypes = state.ExcludedTypes.Add(typeof(TExcluded));
            return(newConfig);
        }
Exemplo n.º 3
0
 public PropertyPrintingConfig(PrintingConfig <TOwner> printingConfig, Dictionary <MemberInfo,
                                                                                   Func <object, string> > specialPrintingFunctionsForMembers, MemberInfo member)
 {
     this.printingConfig = printingConfig;
     this.specialPrintingFunctionsForMembers = specialPrintingFunctionsForMembers;
     this.member = member;
 }
Exemplo n.º 4
0
        public PrintingConfig <TOwner> Exclude <TMember>(Expression <Func <TOwner, TMember> > member)
        {
            var newConfig  = new PrintingConfig <TOwner>(this);
            var memberInfo = ((MemberExpression)member.Body).Member;

            newConfig.state.ExcludedMembers = state.ExcludedMembers.Add(memberInfo);
            return(newConfig);
        }
Exemplo n.º 5
0
 public PropertyPrintingConfig(PrintingConfig <TOwner> config, HashSet <Type> excludeTypesInConfig,
                               Dictionary <Type, Func <object, string> >
                               serializationFuncsForDifferentType)
 {
     Config = config;
     this.excludeTypesInConfig = excludeTypesInConfig;
     this.serializationFuncsForDifferentType = serializationFuncsForDifferentType;
 }
Exemplo n.º 6
0
 internal PrintingConfig(PrintingConfig <TOwner> currentConfig)
 {
     customPropertyRules = currentConfig.customPropertyRules;
     customTypeRules     = currentConfig.customTypeRules;
     defaultTypeRules    = currentConfig.defaultTypeRules;
     excludedTypes       = currentConfig.excludedTypes;
     excludedProperties  = currentConfig.excludedProperties;
 }
        public PrintingConfig <TOwner> SetSerializer(Func <TProperty, string> serializer)
        {
            var newConfig = new PrintingConfig <TOwner>(parentPrintingConfig);

            ((IPrintingConfig)newConfig).State.AltSerializerForMember = ((IPrintingConfig)parentPrintingConfig).
                                                                        State.AltSerializerForMember.AddOrUpdate(member, serializer);
            return(newConfig);
        }
Exemplo n.º 8
0
 private PrintingConfig(PrintingConfig <TOwner> oldPrintingConfig)
 {
     excludingTypes             = oldPrintingConfig.excludingTypes;
     excludingMembers           = oldPrintingConfig.excludingMembers;
     memberLengths              = oldPrintingConfig.memberLengths;
     alternateTypeSerializers   = oldPrintingConfig.alternateTypeSerializers;
     alternateMemberSerializers = oldPrintingConfig.alternateMemberSerializers;
     finalTypes = oldPrintingConfig.finalTypes;
 }
Exemplo n.º 9
0
 public PrintingConfig(PrintingConfig <TOwner> printingConfig)
 {
     excludingTypes                   = printingConfig.excludingTypes;
     excludingProperties              = printingConfig.excludingProperties;
     typesSerializationFunctions      = printingConfig.typesSerializationFunctions;
     numericTypesCultureInfos         = printingConfig.numericTypesCultureInfos;
     propertiesSerializationFunctions = printingConfig.propertiesSerializationFunctions;
     stringMaxLength                  = printingConfig.stringMaxLength;
 }
        public static PrintingConfig <TOwner> CutToLength <TOwner>(
            this PropertyPrintingConfig <TOwner, string> config, int maxLen)
        {
            var printingConfig = ((IPropertyPrintingConfig <TOwner, string>)config)
                                 .PrintingConfig;

            printingConfig = PrintingConfig <TOwner> .SetPropSerializations(
                printingConfig, config.PropertyName, s => ((string)s).Substring(0, Math.Min(((string)s).Length, maxLen)));

            return(printingConfig);
        }
        public IPropertyPrintingConfig <TOwner> AddConfigFor <TPropType>(PrintingConfig <TOwner> printingConfig)
        {
            var type = typeof(TPropType);

            if (!ContainsConfigFor(type))
            {
                printingTypesConfigs.Add(type, CreateNewConfigFor <TPropType>(printingConfig));
            }

            return(printingTypesConfigs[type]);
        }
        public static PrintingConfig <TOwner> Using <TOwner>(
            this PropertyPrintingConfig <TOwner, float> config, CultureInfo cultureInfo)
        {
            var printingConfig = ((IPropertyPrintingConfig <TOwner, float>)config)
                                 .PrintingConfig;

            printingConfig = PrintingConfig <TOwner> .SetTypeSerializations(
                printingConfig, typeof(double), o => ((float)o).ToString(cultureInfo));

            return(printingConfig);
        }
Exemplo n.º 13
0
        public PrintingConfig <TOwner> SetCultureFor <T>(CultureInfo culture)
            where T : IFormattable
        {
            if (typeof(IFormattable).IsAssignableFrom(typeof(T)))
            {
                var newConfig = new PrintingConfig <TOwner>(this);
                newConfig.state.CultureForType = state.CultureForType.AddOrUpdate(typeof(T), culture);
                return(newConfig);
            }

            throw new ArgumentException("Невозможно установить культуру для данного типа");
        }
Exemplo n.º 14
0
        public PrintingConfig <TOwner> Using(Func <TPropType, string> print)
        {
            if (PropertyName == null)
            {
                printingConfig = PrintingConfig <TOwner> .SetTypeSerializations(
                    printingConfig, typeof(TPropType), o => print((TPropType)o));
            }

            else
            {
                printingConfig = PrintingConfig <TOwner> .SetPropSerializations(
                    printingConfig, PropertyName, o => print((TPropType)o));
            }

            return(printingConfig);
        }
        private IPropertyPrintingConfig <TOwner> CreateNewConfigFor <TPropType>(PrintingConfig <TOwner> printingConfig)
        {
            PropertyPrintingConfig <TOwner, TPropType> propConf;
            var type = typeof(TPropType);

            if (type == typeof(string))
            {
                propConf = new StringPropertyConfig <TOwner, TPropType>(printingConfig);
            }
            else if (numberTypes.Contains(type))
            {
                propConf = new NumberPropertyConfig <TOwner, TPropType>(printingConfig);
            }
            else
            {
                propConf = new PropertyPrintingConfig <TOwner, TPropType>(printingConfig);
            }

            return(propConf);
        }
Exemplo n.º 16
0
 public PropertySerializationConfig(PrintingConfig <TOwner> parentConfig)
 {
     this.parentConfig = parentConfig;
 }
Exemplo n.º 17
0
 public PropertySerializationConfig(PrintingConfig <TOwner> parentConfig, string currentName)
 {
     this.parentConfig = parentConfig;
     this.currentName  = currentName;
 }
 public SerializeConfig(PrintingConfig <TOwner> printingConfig, PropertyInfo property)
 {
     this.printingConfig = printingConfig;
     this.property       = property;
 }
 public SerializeConfig(PrintingConfig <TOwner> printingConfig, Type type)
 {
     this.printingConfig = printingConfig;
     this.type           = type;
 }
 public SerializeConfig(PrintingConfig <TOwner> printingConfig)
 {
     this.printingConfig = printingConfig;
 }
Exemplo n.º 21
0
 public PropertyPrintingConfig(PrintingConfig <TOwner> printingConfig, PropertyInfo propertyInfo = null)
 {
     this.printingConfig = printingConfig;
     this.propertyInfo   = propertyInfo;
 }
Exemplo n.º 22
0
 public TypePrintingConfig(PrintingConfig <TOwner> printingConfig)
 {
     this.printingConfig = printingConfig;
 }
Exemplo n.º 23
0
 public PropertyPrintingConfig(PrintingConfig <TOwner> config)
 {
     this.config = config;
 }
 public StringPropertyConfig(PrintingConfig <TOwner> config, PropertyInfo propertyInfo = null) : base(config, propertyInfo)
 {
 }
 public SerializeConfig(PrintingConfig <TOwner> printingConfig, string propertyName)
 {
     this.printingConfig = printingConfig;
     this.propertyName   = propertyName;
 }
 public MemberPrintingConfig(MemberInfo member, PrintingConfig <TOwner> parentPrintingConfig)
 {
     this.member = member;
     this.parentPrintingConfig = parentPrintingConfig;
 }
 public PropertyPrintingConfig(PrintingConfig <TOwner> printingConfig)
 {
     this.printingConfig = printingConfig;
 }
Exemplo n.º 28
0
 public PropertyConfig(PrintingConfig <TOwner> config, PropertyInfo info)
 {
     printingConfig = config;
     propInfo       = info;
 }
Exemplo n.º 29
0
 public PropertyPrintingConfig(PrintingConfig <TOwner> printingConfig, Expression <Func <TOwner, TPropType> > memberSelector = null)
 {
     this.printingConfig = printingConfig;
     this.memberSelector = memberSelector;
 }
Exemplo n.º 30
0
 public PropertyPrintingConfig(PrintingConfig <TOwner> printingConfig, string property = null)
 {
     this.printingConfig = printingConfig;
     PropertyName        = property;
 }