Exemple #1
0
 public System.CodeDom.CodeExpression GetReferenceCode(IMethodCompile method, CodeStatementCollection statements, bool forValue)
 {
     if (_pointer != null)
     {
         return(_pointer.GetReferenceCode(method, statements, forValue));
     }
     if (_memberPointer != null)
     {
         return(_memberPointer.GetReferenceCode(method, statements, forValue));
     }
     return(null);
 }
Exemple #2
0
        public CodeExpression GetReferenceCode(IMethodCompile method, CodeStatementCollection statements, bool forValue)
        {
            ClassInstancePointer cp = _hostingClass as ClassInstancePointer;

            if (cp != null)
            {
                CodeExpression co = cp.GetReferenceCode(method, statements, forValue);
                return(new CodeFieldReferenceExpression(co, Name));
            }
            else
            {
                if (_memberId == 0)
                {
                    if (_definingClass != null)
                    {
                        if (typeof(DrawingPage).IsAssignableFrom(_definingClass.BaseClassType))
                        {
                            return(new CodePropertyReferenceExpression(new CodeTypeReferenceExpression(_definingClass.TypeString), DrawingPage.DEFAULTFORM));
                        }
                    }
                }
                ClassPointer root = _hostingClass as ClassPointer;
                if (root != null)
                {
                    if (root.IsStatic)
                    {
                        return(new CodeFieldReferenceExpression(new CodeTypeReferenceExpression(root.TypeString), Name));
                    }
                    else
                    {
                        return(new CodeArgumentReferenceExpression(Name));
                    }
                }
                else
                {
                    return(new CodeArgumentReferenceExpression(Name));
                }
            }
        }