comment from the forum http://forum.springframework.net/showthread.php?p=8991#post8991:
1. NHibernate does work on medium-trust, but there are some note if u want to do that...like don't use lazy-load feature (this is where the reflection took place), don't use reflection optimizer..., and last maybe you have to recompile nhibernate to have the AllowPartiallyTrustedCallersAttribute (http://www.hibernate.org/407.html) being set.
2. Spring IOC container didn't work because heavy use of reflection emit and that sort of thing.
I think our dynamic reflection is causing much of this problem