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