public ActionResult Details(int? id) { ((dynamic) base.ViewBag).Title = Globals.HtmlDecode(modelExByCache.Title); if (this.WebSiteSet != null) { dynamic viewBag = base.ViewBag; string str3 = "-" + Globals.HtmlDecode(this.WebSiteSet.WebName); if (<Details>o__SiteContainer0.<>p__Site2 == null) { <Details>o__SiteContainer0.<>p__Site2 = CallSite<Func<CallSite, object, bool>>.Create(Binder.IsEvent(CSharpBinderFlags.None, "Title", typeof(ArticleController))); } if (!<Details>o__SiteContainer0.<>p__Site2.Target(<Details>o__SiteContainer0.<>p__Site2, viewBag)) { if (<Details>o__SiteContainer0.<>p__Site4 == null) { <Details>o__SiteContainer0.<>p__Site4 = CallSite<Func<CallSite, object, string, object>>.Create(Binder.BinaryOperation(CSharpBinderFlags.None, ExpressionType.AddAssign, typeof(ArticleController), new CSharpArgumentInfo[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null), CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.UseCompileTimeType, null) })); } viewBag.Title = <Details>o__SiteContainer0.<>p__Site4.Target(<Details>o__SiteContainer0.<>p__Site4, viewBag.Title, str3); } else { viewBag.add_Title(str3); } } return base.View(modelExByCache); }
这是一段MVC3 Action中反编译后的代码。
求教下面这几句是什么意思?能否给还原一下。原始代码应该是怎么样的?
if (<Details>o__SiteContainer0.<>p__Site2 == null) { <Details>o__SiteContainer0.<>p__Site2 = CallSite<Func<CallSite, object, bool>>.Create(Binder.IsEvent(CSharpBinderFlags.None, "Title", typeof(ArticleController))); } if (!<Details>o__SiteContainer0.<>p__Site2.Target(<Details>o__SiteContainer0.<>p__Site2, viewBag)) { if (<Details>o__SiteContainer0.<>p__Site4 == null) { <Details>o__SiteContainer0.<>p__Site4 = CallSite<Func<CallSite, object, string, object>>.Create(Binder.BinaryOperation(CSharpBinderFlags.None, ExpressionType.AddAssign, typeof(ArticleController), new CSharpArgumentInfo[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null), CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.UseCompileTimeType, null) })); } viewBag.Title = <Details>o__SiteContainer0.<>p__Site4.Target(<Details>o__SiteContainer0.<>p__Site4, viewBag.Title, str3); }