---
title: "Skapa en page-instans med dess kontroller?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/179010-skapa-en-page-instans-med-dess-kontroller"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Lukaspojken"
published: "2009-06-16T05:14:59.000Z"
updated: "2009-06-16T09:01:55.000Z"
replies: 3
views: 390
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/179010-skapa-en-page-instans-med-dess-kontroller"
---

# Skapa en page-instans med dess kontroller?

## #1 — Lukaspojken, 2009-06-16T05:14Z

Hur skapar man en ny instans av System.Web.UI.Page? Jag har lyckats med att skapa en instansen men den nya instansen innehåller inga webkontroller. Jag misstänker att det beror på att jag måste anropa något ytterligare efter instanseringen. Någon som vet?

Här är ett enkelt kodexempel på vad jag vill åstadkomma:

```
Type pageType = Page.GetType();
Page newPage = (Page)pageType.GetConstructor(new Type[0]).Invoke(new object[0]);

if (Page.Controls.Count != newPage.Controls.Count)
{
    throw new Exception("Not equal controls");
}
```

Permalänk: https://www.webforum.nu/p/179010

## #2 — Lukaspojken, 2009-06-16T06:11Z

Jag känner att detta är lite utanför mitt kunskapsområde :) Men det senaste jag testat är följande:

```
PageBase newPage = (PageBase)pageType.GetConstructor(new Type[0]).Invoke(new object[0]);
newPage.CustomInitialize();

if (Page.Controls.Count != newPage.Controls.Count)
{
    throw new Exception("Not equal controls");
}

-------------------
public void CustomInitialize()
{
    System.EventArgs e = new EventArgs();
    base.FrameworkInitialize();
    base.InitializeCulture();
    base.OnPreInit(e);
    base.OnInit(e);
    base.OnInitComplete(e);
    base.OnPreLoad(e);
    base.OnLoad(e);
    base.OnLoadComplete(e);
    base.CreateChildControls();
    base.OnPreRender(e);
    base.OnPreRenderComplete(e);
    base.SaveViewState();
    base.OnSaveStateComplete(e);
    base.Render(new System.Web.UI.HtmlTextWriter(new System.IO.StringWriter()));
}
```

Men det finns fortfarande inga kontroller i den nya page-klassen.

Permalänk: https://www.webforum.nu/p/2190735

## #3 — erka, 2009-06-16T08:23Z

Vad vill du åstakomma genom att kopiera en instans av en Page?

Permalänk: https://www.webforum.nu/p/2190744

## #4 — Lukaspojken, 2009-06-16T09:01Z

Jag har experimenterat lite med att skapa en simpel GUI-entitets-mapper och jag vill i efterhand kunna validera automatisk alla mappningar man gjort på olika sidor och detta via automatiska tester. Din fråga är dock bra...

Något som jag tänkt på är att skapa någon form av automatgenerat kontrakt (inte interface) till sidorna för att underlätta validering men också för att snabba upp mappningen. Men för att jag ska kunna validera att en sida följer ett kontrakt så måste jag komma åt dess kontroller. Detta skulle jag vilja göra genom att skapa en page-instans. Detta borde vara möjligt men jag är som sagt osäker på hur man gör det...

Eller har du något annat bra alternativ hur man skulle kunna göra?

Permalänk: https://www.webforum.nu/p/2190747

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/179010-skapa-en-page-instans-med-dess-kontroller
