Example #1
0
        /// <summary>
        ///    Maps a property to an xml node.
        /// </summary>
        /// <param name="memberType">Type of member to map.</param>
        /// <param name="memberName">Name of member to map.</param>
        /// <returns>The property mapping.</returns>
        protected virtual XmlNodeMap Map(TypeMemberInfo.MemberType memberType, string memberName)
        {
            if (string.IsNullOrEmpty(memberName))
            {
                throw new ArgumentNullException("memberName");
            }
            Type objType = typeof(T);
            Type dataType;

            switch (memberType)
            {
            case TypeMemberInfo.MemberType.Field:
                var fld = objType.Field(memberName);
                dataType = fld.FieldType;
                break;

            case TypeMemberInfo.MemberType.Property:
                var prop = objType.Property(memberName);
                dataType = prop.PropertyType;
                break;

            default:
                throw new MappingException("Unknown member type");
            }

            var nodeMap = new XmlNodeMap(memberName, memberType, dataType);

            _Mappings.Add(nodeMap);
            return(nodeMap);
        }
Example #2
0
 /// <summary>
 ///    Initializes a new instance of the <see cref="XmlNodeMap" /> class.
 /// </summary>
 internal XmlNodeMap(string name, TypeMemberInfo.MemberType memberType, Type dataType)
 {
     Info = new TypeMemberInfo(name, memberType, dataType);
 }