コード例 #1
0
        public override Expression CloneExpressionOnly()
        {
            TypeReferenceExpression result = new TypeReferenceExpression(Type, null);

            return(result);
        }
コード例 #2
0
		public override void VisitTypeReferenceExpression(TypeReferenceExpression node)
		{
			WriteReferenceAndNamespaceIfInCollision(node.Type);
		}
コード例 #3
0
        public override Expression Clone()
        {
            TypeReferenceExpression result = new TypeReferenceExpression(Type, this.instructions);

            return(result);
        }
コード例 #4
0
 public virtual void VisitTypeReferenceExpression(TypeReferenceExpression node)
 {
 }
コード例 #5
0
        private Expression GenerateInvokeMemeberExpression(CallSiteInfo callSiteInfo, IList<Expression> arguments, IEnumerable<Instruction> instructions)
		{
            if (arguments.Count < 1)
            {
                throw new Exception("Invalid number of arguments for invoke expression.");
            }

            Expression target;
            TypeReference typeRef;
            if (arguments[0].CodeNodeType == CodeNodeType.MethodInvocationExpression &&
                (arguments[0] as MethodInvocationExpression).IsTypeOfExpression(out typeRef))
            {
                target = new TypeReferenceExpression(typeRef, arguments[0].UnderlyingSameMethodInstructions);
            }
            else
            {
                target = arguments[0];
            }

			DynamicMemberReferenceExpression dynamicMemberReferenceExpression = new DynamicMemberReferenceExpression(target, callSiteInfo.MemberName, objectTypeRef, instructions,
                GetAllButFirst(arguments), callSiteInfo.GenericTypeArguments);
			return dynamicMemberReferenceExpression;
		}
 public override Expression CloneExpressionOnly()
 {
     TypeReferenceExpression result = new TypeReferenceExpression(Type, null);
     return result;
 }
        public override Expression Clone()
        {
			TypeReferenceExpression result = new TypeReferenceExpression(Type, this.instructions);
			return result;
        }