Not at all, your mark as class as serializable, and then you serialize it . .Net works out all the types.
I have found that this only works for serializing the default types/classes. From my experience, if you want to serialize a custom type or class, you're forced to dive into implementing the ISerializable interface.

Additionally, I tried removing ISerializable from my custom collection class, and it still did not work.

Nobody else has had problems trying to serialize a custom collection?