Мне кажется, что ваш код совершенно корректен ... если вы ожидаете, что будет сгенерировано исключение, потому что вы пытаетесь получить доступ к приватному члену делегата, ваша логика неверна Вы вызываете приватный метод через открытый член класса, так что это работает просто отлично.
Если сделать TestCallback закрытым, это приведет к ошибке времени компиляции. Я не уверен, как вы ожидаете генерировать исключение MemberAccessException?