Esempio n. 1
0
        protected override void CreateMappings(string source, Type targetType, IMatchingStrategy <int> matching)
        {
            int fieldCount = source.Split(FieldDelimiter).Length;

            var targetProperties = targetType.GetAccessiblePublicInstanceProperties();

            foreach (var target in targetProperties)
            {
                for (int i = 1; i < (fieldCount + 1); i++)
                {
                    if (matching.IsMatch(target, i))
                    {
                        AddMapping(CreateMapping(i, target));
                        break;
                    }
                }
            }
        }
        protected override void CreateMappings(XDocument source, Type targetType, IMatchingStrategy <string> matching)
        {
            var objects = new List <XObject>();
            var nodes   = (from node in source.Root.DescendantNodesAndSelf()
                           where node.NodeType == XmlNodeType.Element
                           select node as XObject);

            foreach (var node in nodes)
            {
                objects.Add(node);
                objects.AddRange(from attr in ((XElement)node).Attributes()
                                 select attr as XObject);
            }

            var targetProperties = targetType.GetAccessiblePublicInstanceProperties();

            foreach (var target in targetProperties)
            {
                foreach (XObject obj in objects)
                {
                    XName    name    = null;
                    XElement element = obj as XElement;
                    if (element != null)
                    {
                        name = element.Name;
                    }
                    else
                    {
                        XAttribute attribute = obj as XAttribute;
                        name = attribute.Name;
                    }

                    if (matching.IsMatch(target, name.LocalName))
                    {
                        AddMapping(CreateMapping(obj, target));
                        break;
                    }
                }
            }
        }
Esempio n. 3
0
        protected override void CreateMappings(IDataReader source, Type targetType, IMatchingStrategy <string> matching)
        {
            List <string> columnNames = new List <string>(source.FieldCount);

            for (int i = 0; i < source.FieldCount; i++)
            {
                columnNames.Add(source.GetName(i));
            }

            var targetProperties = targetType.GetAccessiblePublicInstanceProperties();

            foreach (var target in targetProperties)
            {
                foreach (string columnName in columnNames)
                {
                    if (matching.IsMatch(target, columnName))
                    {
                        AddMapping(CreateMapping(columnName, target));
                        break;
                    }
                }
            }
        }