System.Web.Compilation.ResourceExpressionBuilder.GetCodeExpression C# (CSharp) Method

GetCodeExpression() public method

public GetCodeExpression ( BoundPropertyEntry entry, object parsedData, System.Web.Compilation.ExpressionBuilderContext context ) : CodeExpression
entry BoundPropertyEntry
parsedData object
context System.Web.Compilation.ExpressionBuilderContext
return CodeExpression
		public override CodeExpression GetCodeExpression (BoundPropertyEntry entry, object parsedData, ExpressionBuilderContext context)
		{
			ResourceExpressionFields fields = parsedData as ResourceExpressionFields;
			CodeExpression[] expr;

			// TODO: check what MS runtime does in this situation
			if (entry == null)
				return null;
			
			if (!String.IsNullOrEmpty (fields.ClassKey)) {
				if (! (entry.PropertyInfo is PropertyInfo))
					return null; // TODO: check what MS runtime does here
				
				expr = new CodeExpression [] {
					new CodePrimitiveExpression (fields.ClassKey),
					new CodePrimitiveExpression (fields.ResourceKey)
				};
				CodeMethodInvokeExpression getgro = new CodeMethodInvokeExpression (new CodeThisReferenceExpression (), "GetGlobalResourceObject", expr);
				return new CodeCastExpression (entry.PropertyInfo.PropertyType, getgro);
			} else
				return CreateGetLocalResourceObject (entry, fields.ResourceKey);
		}