internal MethodInfo this[TypeModel.CallbackType callbackType] { get { switch (callbackType) { case TypeModel.CallbackType.BeforeSerialize: return beforeSerialize; case TypeModel.CallbackType.AfterSerialize: return afterSerialize; case TypeModel.CallbackType.BeforeDeserialize: return beforeDeserialize; case TypeModel.CallbackType.AfterDeserialize: return afterDeserialize; default: throw new ArgumentException("Callback type not supported: " + callbackType.ToString(), "callbackType"); } } }