As far as I understand, the IDeserializationCallback interface and the OnDeserialized event can both be used when an object needs to perform some task after being deserialized.<
I have wondered the same thing. As far as pros/cons go, I can only reason that the interface has an advantage in that it forces you to implement the correct method signature where-as the attribute version will happily let you compile your class regardless of what your method signature looks like.