Since I acquired a NHibernateProfiler license, an initialization warning message draw my attention, the text seemed quite easy to solve:
WARN: custom type is not Serializable: MyLibrary.MyCustomDataType
My first solution was adding
[Serializable] attribute to the custom type, but that didn’t make the trick. As it was only a warning, I did not investigate further at that moment.
But the other day, debugging data access code I saw the warning again and the easiest solution was going to the source NHibernate code to find this:
As seen in this code, the message is unclear, because the class that must be serializable is the
ReturnedClass, not the custom
So, to solve the warning I just needed to add
[Serializable] to the class returned by my custom
UserType instead than the type itself.