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; } } } }
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; } } } }