Thanks David, that works - I had to write a custom importer which sets the name and just invokes the XmlImporter.
Now the next hurdle I have is the following:
I have a Foo class.
I have an editor application for Foos that writes out Foos into xml using the IntermediateSerializer.
Up until just now, I was using a Foo object everywhere, but now I have added a corresponding FooContent for the content pipeline, because it became obvious that was the cleaner way to go (my Foo class started being polluted by content pipeline things). They have mostly the same properties, at least in term of what my editor application puts into the XML file. But the intermediate serializer puts
<Asset Type="MyNamespace.Foo">
in the XML file.
In my importer, I want to read in a FooContent.
But I don't want to have to write a tedious function to convert a Foo -> FooContent. Since they have similar properties, it should be possible to just swap the Asset Type in the XML to FooContent and deserialize that.
Is there a good way to do that? i.e. can I override what gets written to the Asset type either
1) in the XmlImporter in my importer, or
2) when I serialize with IntermediateSerializer?
Basically I want my editor application to write out a Foo, and my content pipeline importer to read in a FooContent.