You can import the transient types you want to dynamically instatiate from NHibernate by importing them through the Mappings object (generated by the Configuration object):
Code:
configuration.CreateMappings().AddImport(type.AssemblyQualifiedName, alias);
Normally I loop through all the types I want to be able to dynamically instantiate and call the AddImport method for each one before I instantiate my SessionFactory.
NHibernate doesn't exactly know about the transient type in terms of it being mapped, but it does need to know about the type. I don't think you need to do the import if the type is in the same assembly...but I'm not sure.
Anyway, this works fine for me!
Symon.