Imported Upstream version 4.6.0.125

Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2016-08-03 10:59:49 +00:00
parent a569aebcfd
commit e79aa3c0ed
17047 changed files with 3137615 additions and 392334 deletions

View File

@ -0,0 +1,47 @@
//------------------------------------------------------------------------------
// <copyright file="MasterPageCodeDomTreeGenerator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
namespace System.Web.Compilation {
using System;
using System.CodeDom;
using System.Globalization;
using System.Web.UI;
internal class MasterPageCodeDomTreeGenerator : TemplateControlCodeDomTreeGenerator {
private const string _masterPropertyName = "Master";
protected MasterPageParser _masterPageParser;
MasterPageParser Parser { get { return _masterPageParser; } }
internal MasterPageCodeDomTreeGenerator(MasterPageParser parser) : base(parser) {
_masterPageParser = parser;
}
protected override void BuildDefaultConstructor() {
base.BuildDefaultConstructor();
foreach(string placeHolderID in Parser.PlaceHolderList) {
BuildAddContentPlaceHolderNames(_ctor, placeHolderID);
}
}
private void BuildAddContentPlaceHolderNames(CodeMemberMethod method, string placeHolderID) {
CodePropertyReferenceExpression propertyExpr = new CodePropertyReferenceExpression(new CodeThisReferenceExpression(), "ContentPlaceHolders");
CodeExpressionStatement stmt = new CodeExpressionStatement();
stmt.Expression = new CodeMethodInvokeExpression(propertyExpr, "Add", new CodePrimitiveExpression(placeHolderID.ToLower(CultureInfo.InvariantCulture)));
method.Statements.Add(stmt);
}
protected override void BuildMiscClassMembers() {
base.BuildMiscClassMembers();
if (Parser.MasterPageType != null)
BuildStronglyTypedProperty(_masterPropertyName, Parser.MasterPageType);
}
}
}