Я не зря сказал "декоратор", вам приходилось декорировать в C# скажем Stream'ы? Приходится такую тонну всего прокидывать, что мама не горюй. И это как раз цена за обёртку и за то, что не полезли грязными лапами в чужую реализацию. Чем сложнее декорируемый объект - тем сложнее декорировать. И я не знаю ни варианта ни проще, ни правильнее.
Банда четырёх весьма основательно подошла к вопросу и вот сколько ни философствуй других вариантов-то и нет - враппер, прокси. Попробуйте что-то своё придумать - получится ли?