protected override void Clone(ChoRecordConfiguration config)
        {
            base.Clone(config);

            if (!(config is ChoFileRecordConfiguration))
            {
                return;
            }

            ChoFileRecordConfiguration fconfig = config as ChoFileRecordConfiguration;

            fconfig.MaxScanRows             = MaxScanRows;
            fconfig.BufferSize              = BufferSize;
            fconfig.Comments                = Comments;
            fconfig.CultureName             = CultureName;
            fconfig.Culture                 = Culture;
            fconfig.EOLDelimiter            = EOLDelimiter;
            fconfig.MayContainEOLInData     = MayContainEOLInData;
            fconfig.IgnoreEmptyLine         = IgnoreEmptyLine;
            fconfig.ColumnCountStrict       = ColumnCountStrict;
            fconfig.ColumnOrderStrict       = ColumnOrderStrict;
            fconfig.EscapeQuoteAndDelimiter = EscapeQuoteAndDelimiter;
            fconfig.NestedColumnSeparator   = NestedColumnSeparator;
            fconfig.QuoteChar               = QuoteChar;
            fconfig.BackslashQuote          = BackslashQuote;
            fconfig.DoubleQuoteChar         = DoubleQuoteChar;
            fconfig.QuoteAllFields          = QuoteAllFields;
            fconfig.StringSplitOptions      = StringSplitOptions;
            fconfig.EncodingPage            = EncodingPage;
            fconfig.NullValue               = NullValue;
        }
예제 #2
0
        protected Type DiscoverFieldType(string value, ChoFileRecordConfiguration config)
        {
            bool        treatCurrencyAsDecimal = config.TreatCurrencyAsDecimal;
            long        lresult = 0;
            double      dresult = 0;
            DateTime    dtresult;
            Decimal     decResult  = 0;
            ChoCurrency currResult = 0;
            Guid        guidResult;

            if (value == null)
            {
                return(typeof(string));
            }
            else if (long.TryParse(value, out lresult))
            {
                return(typeof(long));
            }
            else if (double.TryParse(value, out dresult))
            {
                return(typeof(double));
            }
            else if (DateTime.TryParse(value, out dtresult))
            {
                return(typeof(DateTime));
            }
            else if (DateTime.TryParse(value, out dtresult))
            {
                return(typeof(DateTime));
            }
            else if (Guid.TryParse(value, out guidResult))
            {
                return(typeof(Guid));
            }
            else if (!treatCurrencyAsDecimal && ChoCurrency.TryParse(value, out currResult))
            {
                return(typeof(ChoCurrency));
            }
            else if (treatCurrencyAsDecimal && Decimal.TryParse(value, NumberStyles.Currency, CultureInfo.CurrentCulture, out decResult))
            {
                return(typeof(Decimal));
            }
            else
            {
                return(typeof(string));
            }
        }
예제 #3
0
        private ChoFileRecordConfiguration GetConfiguration(Type recordType)
        {
            ChoFileRecordConfiguration config = Configuration[recordType];

            if (config == null)
            {
                ChoFileRecordObjectAttribute recObjAttr = ChoType.GetAttribute <ChoFileRecordObjectAttribute>(recordType);
                if (recObjAttr == null || recObjAttr is ChoCSVRecordObjectAttribute)
                {
                    Configuration[recordType] = new ChoCSVRecordConfiguration(recordType);
                }
                else if (recObjAttr is ChoFixedLengthRecordObjectAttribute)
                {
                    Configuration[recordType] = new ChoFixedLengthRecordConfiguration(recordType);
                }
            }

            return(Configuration[recordType]);
        }
예제 #4
0
 public ChoPropertyRenameAndIgnoreSerializerContractResolver(ChoFileRecordConfiguration configuration)
 {
     _configuration = configuration;
 }