PageRenderTime 41ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 0ms

/BlogEngine/DotNetSlave.BusinessLogic/Compilation/CodeExpressionBuilder.cs

#
C# | 55 lines | 18 code | 4 blank | 33 comment | 0 complexity | a8c778b182e675fbbd148aecbcfcb660 MD5 | raw file
Possible License(s): LGPL-2.1, Apache-2.0, BSD-3-Clause
  1. // --------------------------------------------------------------------------------------------------------------------
  2. // <summary>
  3. // Code Expression Builder
  4. // </summary>
  5. // --------------------------------------------------------------------------------------------------------------------
  6. namespace BlogEngine.Core.Compilation
  7. {
  8. using System.CodeDom;
  9. using System.Web.Compilation;
  10. using System.Web.UI;
  11. /// <summary>
  12. /// Code Expression Builder
  13. /// </summary>
  14. /// <example>
  15. /// page.aspx:
  16. /// &lt;asp:CheckBox id="chk1" runat="server" Text='&lt;%$ code: DateTime.Now %&gt;' /&gt;
  17. /// web.config:
  18. /// &lt;compilation debug="true"&gt;
  19. /// &lt;expressionBuilders&gt;
  20. /// &lt;add expressionPrefix="code" type="WebApp.Compilation.CodeExpressionBuilder, WebApp" /&gt;
  21. /// &lt;/expressionBuilders&gt;
  22. /// &lt;/compilation&gt;
  23. /// </example>
  24. [ExpressionPrefix("Code")]
  25. [ExpressionEditor("BlogEngine.Core.Compilation.Design.CodeExpressionEditor, BlogEngine.Core")]
  26. public class CodeExpressionBuilder : ExpressionBuilder
  27. {
  28. #region Public Methods
  29. /// <summary>
  30. /// When overridden in a derived class, returns code that is used during page execution to obtain the evaluated expression.
  31. /// </summary>
  32. /// <param name="entry">
  33. /// The object that represents information about the property bound to by the expression.
  34. /// </param>
  35. /// <param name="parsedData">
  36. /// The object containing parsed data as returned by <see cref="M:System.Web.Compilation.ExpressionBuilder.ParseExpression(System.String,System.Type,System.Web.Compilation.ExpressionBuilderContext)"/>.
  37. /// </param>
  38. /// <param name="context">
  39. /// Contextual information for the evaluation of the expression.
  40. /// </param>
  41. /// <returns>
  42. /// A <see cref="T:System.CodeDom.CodeExpression"/> that is used for property assignment.
  43. /// </returns>
  44. public override CodeExpression GetCodeExpression(
  45. BoundPropertyEntry entry, object parsedData, ExpressionBuilderContext context)
  46. {
  47. return new CodeSnippetExpression(entry.Expression.Trim());
  48. }
  49. #endregion
  50. }
  51. }