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); }
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)); } } }