1 /* ****************************************************************************
\r
3 * Copyright (c) Microsoft Corporation. All rights reserved.
\r
5 * This software is subject to the Microsoft Public License (Ms-PL).
\r
6 * A copy of the license can be found in the license.htm file included
\r
7 * in this distribution.
\r
9 * You must not remove this notice, or any other, from this software.
\r
11 * ***************************************************************************/
\r
13 namespace System.Web.Mvc {
\r
15 using System.CodeDom;
\r
16 using System.Collections;
\r
17 using System.Web.UI;
\r
19 internal sealed class ViewTypeControlBuilder : ControlBuilder {
\r
20 private string _typeName;
\r
22 public override void Init(TemplateParser parser, ControlBuilder parentBuilder, Type type, string tagName, string id, IDictionary attribs) {
\r
23 base.Init(parser, parentBuilder, type, tagName, id, attribs);
\r
25 _typeName = (string)attribs["typename"];
\r
28 public override void ProcessGeneratedCode(
\r
29 CodeCompileUnit codeCompileUnit,
\r
30 CodeTypeDeclaration baseType,
\r
31 CodeTypeDeclaration derivedType,
\r
32 CodeMemberMethod buildMethod,
\r
33 CodeMemberMethod dataBindingMethod) {
\r
35 // Override the view's base type with the explicit base type
\r
36 derivedType.BaseTypes[0] = new CodeTypeReference(_typeName);
\r