Which of the following is required to be implemented by marshal-by-value objects to implement custom serialization rules?