public void GetRootFromDeepLevelShouldReturnRootProperty()
        {
            var myClassComponent1Path              = new PropertyPath(null, myClassComponent1);
            var myClassComponent1ComponentPath     = new PropertyPath(myClassComponent1Path, myComponentComponent);
            var myClassComponent1ComponentNamePath = new PropertyPath(myClassComponent1ComponentPath, myComponentInComponentName);

            myClassComponent1ComponentNamePath.GetRootMember().Should().Be(myClassComponent1);
        }
        private string TypeName(
            PropertyPath member
            )
        {
            var type = member.GetRootMember().DeclaringType;

            return(type.IsGenericType ? _genericArity.Replace(type.Name, string.Empty) : type.Name);
        }
示例#3
0
 /// <summary>
 /// Event handler to check each persistent class and determine if there is an
 /// override mapping between object and persistent types.  Mappings are defined
 /// in IHibernateConfigurationExtension implementation.
 /// </summary>
 /// <param name="modelInspector"></param>
 /// <param name="member"></param>
 /// <param name="propertyCustomizer"></param>
 private void mapper_BeforeMapProperty(IModelInspector modelInspector, PropertyPath member, IPropertyMapper propertyCustomizer)
 {
     foreach (Type objectType in m_ExtensionConfig.UserConversionMappings.Keys)
     {
         // if object type name is the same as the current type name override the type conversion
         if (((PropertyInfo)(member.GetRootMember())).PropertyType.FullName.Equals(objectType.FullName))
         {
             propertyCustomizer.Type(m_ExtensionConfig.UserConversionMappings[objectType], null);
         }
     }
 }
        /// <summary>
        /// Applies the <see cref="OffsetDateTimeType"/> UserType to all <see cref="OffsetDateTime"/> fields in the mapping.
        /// </summary>
        /// <remarks>
        /// Allows the use of <see cref="OffsetDateTime"/> type with databases that do not natively support it.
        /// User: mapper.BeforeMapProperty += NodaTimeMapperHelper.ApplyOffsetDateTimeType
        /// </remarks>
        public static void ApplyOffsetDateTimeType(IModelInspector inspector, PropertyPath property, IPropertyMapper mapper)
        {
            var root = property.GetRootMember();

            Debug.WriteLine(root.Name);
            Type propertyType = property.LocalMember.GetPropertyOrFieldType();

            if (propertyType == typeof(OffsetDateTime) || propertyType == typeof(OffsetDateTime?))
            {
                mapper.Type <OffsetDateTimeType>();
            }
        }
 public static Type Owner(this PropertyPath member)
 {
     return(member.GetRootMember().DeclaringType);
 }