public virtual Type GetTypeFromPropertyMap(IPropertyMap propertyMap) { Type type = null; string dataType = propertyMap.GetDataOrItemType(); IClassMap classMap = propertyMap.ClassMap.DomainMap.GetClassMap(dataType); if (classMap != null) { type = Type.GetType(classMap.GetFullName() + ", " + classMap.GetAssemblyName()); if (type == null) { foreach (Assembly asm in m_LoadedAssemblies.Values) { type = asm.GetType(classMap.GetFullName()); if (type != null) { break; } } } } else { type = Type.GetType(dataType); if (type == null) { IDomainMap domainMap = propertyMap.ClassMap.DomainMap; string fullName = dataType; if (domainMap.RootNamespace.Length > 0) { fullName = domainMap.RootNamespace + "." + fullName; } type = Type.GetType(fullName + ", " + domainMap.GetAssemblyName()); } } return(type); }