Given:
Problem:
1) Load the Dozer bean mapper from mapping file
DozerBeanMapper dtoMapper = new DozerBeanMapper(Arrays.asList(new String[]{dozerMappingfile}));
2) Covert each object to a normal object removing persistentbag related details
List<MyEjb> lstProfilehib = //hibernate loaded objects
List<MyEjb> lstProfile = new ArrayList<MyEjb>();
for(MyEjb sp: lstProfilehib){
lstProfile.add( dtoMapper.map(sp, MyEjb.class));
}
NHibernate serialization has been treated a lot on stackoverflow. See:
Bottom line: use DTOs.
You can never XML Serialize an interface - only a concrete class that implements the interface.
Try using the DataContractSerializer instead. It's more restrictive, but will serialize more.
Dan Rigsby explains the difference between XMLSerializer and DataContractSerializer
Here's an example from one of my posts on stackoverflow:
public XDocument GetProductXML(Product product)
{
var serializer = new DataContractSerializer(typeof(Product));
var document = new XDocument();
using (var writer = document.CreateWriter())
{
serializer.WriteObject(writer, product);
writer.Close();
}
return document;
}