public override bool IsCompatible (TypeMetadata other)
{
if (!(other is SerializableTypeMetadata)) return false;
SerializableTypeMetadata tm = (SerializableTypeMetadata)other;
if (types.Length != tm.types.Length) return false;
if (TypeAssemblyName != tm.TypeAssemblyName) return false;
if (InstanceTypeName != tm.InstanceTypeName) return false;
for (int n=0; n<types.Length; n++)
{
if (types[n] != tm.types[n]) return false;
if (names[n] != tm.names[n]) return false;
}
return true;
}