<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=ASP.NET_Tutorial%2FDevelopment%2FExpressionBuilder</id>
		<title>ASP.NET Tutorial/Development/ExpressionBuilder - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=ASP.NET_Tutorial%2FDevelopment%2FExpressionBuilder"/>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=ASP.NET_Tutorial/Development/ExpressionBuilder&amp;action=history"/>
		<updated>2026-04-29T23:11:03Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://nfex.ru/index.php?title=ASP.NET_Tutorial/Development/ExpressionBuilder&amp;diff=2541&amp;oldid=prev</id>
		<title> в 15:30, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=ASP.NET_Tutorial/Development/ExpressionBuilder&amp;diff=2541&amp;oldid=prev"/>
				<updated>2010-05-26T15:30:57Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 15:30, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://nfex.ru/index.php?title=ASP.NET_Tutorial/Development/ExpressionBuilder&amp;diff=2542&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=ASP.NET_Tutorial/Development/ExpressionBuilder&amp;diff=2542&amp;oldid=prev"/>
				<updated>2010-05-26T11:56:11Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Creating a Custom ExpressionBuilder==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
An ExpressionBuilder class generates one expression from another expression. &lt;br /&gt;
File: App_Code\LookupExpressionBuilder.cs&lt;br /&gt;
using System;&lt;br /&gt;
using System.CodeDom;&lt;br /&gt;
using System.Web.UI;&lt;br /&gt;
using System.ruponentModel;&lt;br /&gt;
using System.Web.rupilation;&lt;br /&gt;
using System.Xml;&lt;br /&gt;
using System.Web.Hosting;&lt;br /&gt;
using System.Web.Caching;&lt;br /&gt;
namespace MyNamespace&lt;br /&gt;
{&lt;br /&gt;
    public class LookupExpressionBuilder : ExpressionBuilder&lt;br /&gt;
    {&lt;br /&gt;
        public override CodeExpression GetCodeExpression(BoundPropertyEntry entry, object parsedData, ExpressionBuilderContext context)&lt;br /&gt;
        {&lt;br /&gt;
            CodeTypeReferenceExpression refMe = new CodeTypeReferenceExpression(base.GetType());&lt;br /&gt;
            CodePrimitiveExpression expression = new CodePrimitiveExpression(entry.Expression);&lt;br /&gt;
            return new CodeMethodInvokeExpression(refMe, &amp;quot;GetEvalData&amp;quot;, new CodeExpression[] { expression });&lt;br /&gt;
        }&lt;br /&gt;
        public override object EvaluateExpression(object target, BoundPropertyEntry entry, object parsedData, ExpressionBuilderContext context)&lt;br /&gt;
        {&lt;br /&gt;
            return GetEvalData(entry.Expression);&lt;br /&gt;
        }&lt;br /&gt;
        public override bool SupportsEvaluate&lt;br /&gt;
        {&lt;br /&gt;
            get&lt;br /&gt;
            {&lt;br /&gt;
                return true;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        public static string GetEvalData(string expression)&lt;br /&gt;
        {&lt;br /&gt;
            XmlDocument lookupDoc = (XmlDocument)HostingEnvironment.Cache[&amp;quot;Lookup&amp;quot;];&lt;br /&gt;
            if (lookupDoc == null)&lt;br /&gt;
            {&lt;br /&gt;
                lookupDoc = new XmlDocument();&lt;br /&gt;
                string lookupFileName = HostingEnvironment.MapPath (&amp;quot;~/Lookup.config&amp;quot;);&lt;br /&gt;
                lookupDoc.Load(lookupFileName);&lt;br /&gt;
                CacheDependency fileDepend = new CacheDependency(lookupFileName);&lt;br /&gt;
                HostingEnvironment.Cache.Insert(&amp;quot;Lookup&amp;quot;, lookupDoc, fileDepend);&lt;br /&gt;
            }&lt;br /&gt;
            string search = String.Format(&amp;quot;//add[@key=&amp;quot;{0}&amp;quot;]&amp;quot;, expression);&lt;br /&gt;
            XmlNode match = lookupDoc.SelectSingleNode(search);&lt;br /&gt;
            if (match != null)&lt;br /&gt;
                return match.Attributes[&amp;quot;value&amp;quot;].Value;&lt;br /&gt;
            return &amp;quot;[no match]&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
            &lt;br /&gt;
&lt;br /&gt;
File: Web.Config&lt;br /&gt;
&amp;lt;configuration&amp;gt;&lt;br /&gt;
  &amp;lt;system.web&amp;gt;&lt;br /&gt;
    &amp;lt;compilation&amp;gt;&lt;br /&gt;
      &amp;lt;expressionBuilders&amp;gt;&lt;br /&gt;
        &amp;lt;add expressionPrefix=&amp;quot;lookup&amp;quot;&lt;br /&gt;
           type=&amp;quot;MyNamespace.LookupExpressionBuilder&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/expressionBuilders&amp;gt;&lt;br /&gt;
    &amp;lt;/compilation&amp;gt;&lt;br /&gt;
  &amp;lt;/system.web&amp;gt;&lt;br /&gt;
&amp;lt;/configuration&amp;gt;&lt;br /&gt;
&lt;br /&gt;
File: Lookup.config&lt;br /&gt;
&amp;lt;lookup&amp;gt;&lt;br /&gt;
  &amp;lt;add key=&amp;quot;WelcomeMessage&amp;quot; value=&amp;quot;Welcome to our Web site!&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;add key=&amp;quot;Copyright&amp;quot; value=&amp;quot;All content copyrighted by the company.&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/lookup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
File: ShowLookupExpressionBuilder.aspx&lt;br /&gt;
&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot;&lt;br /&gt;
  &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;head id=&amp;quot;Head1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Show LookupExpressionBuilder&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;form id=&amp;quot;form1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&lt;br /&gt;
    &amp;lt;asp:Literal ID=&amp;quot;Literal1&amp;quot;&lt;br /&gt;
        Text=&amp;quot;&amp;lt;%$ lookup:WelcomeMessage %&amp;gt;&amp;quot;&lt;br /&gt;
        runat=&amp;quot;Server&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>