/// <inheritdoc /> public override DynamicMetaObject BindConvert(ConvertBinder binder) { var restrictions = BindingRestrictions.GetTypeRestriction(Expression, LimitType); if (binder.Type == LimitType) { return(binder.FallbackConvert(new DynamicMetaObject(Expression, restrictions, Value))); } var method = CachedMethods.GetOrAdd(binder.Type, t => GetAsMethod(t, false)); var call = Expression.Call(Expression.Convert(Expression, LimitType), method); return(new DynamicMetaObject(call, restrictions)); }
public void Mark_HasGetHashCode () { cached_method |= CachedMethods.GetHashCode; }
public void Mark_HasEquals () { cached_method |= CachedMethods.Equals; }