public override bool TryInvokeMember(InvokeMemberBinder binder, object[] args, out object result) { var innerResult = _inner.TryInvokeMember(binder, args, out result); //special case, we need to check if the result is of a non-legacy dynamic type because if it is, we need //to return the legacy type result = LegacyConverter.ConvertToLegacy(result); return(innerResult); }