Q:

Change the name of the class being serialized in .Net? 

I can map incoming class names by using a SerializationBinder and overriding the BindToType method, but I found no way of changing the name of the class in the serialization process.  Is it possible at all?? 
EDIT:
I am referring to the serialization using the System. Runtime. Serialization, and not the System. Xml. Serialization. 
Thanks! 

A:

I'm not sure if I follow you, but you could use XmlTypeAttribute.  You can then easily retrieve its values through reflection.  
[XmlType(Namespace = "myNamespaceThatWontChange",
TypeName = "myClassThatWontChange")]
public class Person
{
   public string Name;
}

Check this out:
http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmltypeattribute%28VS.100%29.aspx

A:

I found out that I can use the SerializationInfo object that comes in the GetObjectData function, and change the AssemblyName and FullTypeName properties, so that when I deserialize I can use a SerializationBinder to map the custom assembly and type-name back to a valid type.  Here is a semple:
Serializable class:
[Serializable]
class MyCustomClass : ISerializable
{
    string _field;
    void MyCustomClass(SerializationInfo info, StreamingContext context)
    {
        this._field = info. GetString("PropertyName");
    }
    void ISerializable. GetObjectData(SerializationInfo info, StreamingContext context)
    {
        info. AssemblyName = "MyCustomAssemblyIdentifier";
        info. FullTypeName = "MyCustomTypeIdentifier";
        info. AddValue("PropertyName", this._field);
    }
}

SerializationBinder:
public class MyBinder : SerializationBinder
{
    public override Type BindToType(string assemblyName, string typeName)
    {
        if (assemblyName == "MyCustomAssemblyIdentifier")
            if (typeName == "MyCustomTypeIdentifier")
                return typeof();
        return null;
    }
}

Serialization code:
var fs = GetStream();
BinaryFormatter f = new BinaryFormatter();
f.Binder = new MyBinder();
var obj = (MyCustomClass)f. Deserialize(fs);

Deserialization code:
var fs = GetStream();
MyCustomClass obj = GetObjectToSerialize();
BinaryFormatter f = new BinaryFormatter();
f.Deserialize(fs, obj);

A:

You can do it with attributes:
[System. Xml. Serialization. XmlRoot("xmlName")]
public Class ClassName
{
}

