private void Bind(object obj, Type targetType) { Contract.Requires(targetType != null); if (!disposed && !object.Equals(obj, boundSource)) { boundSource = obj; CancelSubscribe(); observer = Observable2.CoerceObserver <object>(obj); if (targetType == typeof(IEnumerable)) { TrySubscribeEnumerable(obj); } else { TrySubscribe(obj); } } }