Announcement

Collapse
No announcement yet.

User Control im Design Mode laden (ASP.NET 2.0)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • User Control im Design Mode laden (ASP.NET 2.0)

    Hallo,
    ich habe mir ein kleines Skinning Framework geschrieben, dass es mir erlaubt, verschiedene User Controls mit einer Codebehinde Datei zu steuern (Diese müssen aber die selben Elemente haben.) . Dazu erben die Skinned Controls von ein und derselben Klasse. In dieser Klasse wird das eigentliche Control per Page.Load(string virtualPath) geladen. Das funktioniert zu Laufzeit super. Allerdings wenn man im Visual Studio diese Control benutzt, sieht man im Designer nur einen Fehler (NullReferenceException). Um den Fehler auf den Grund zu gehen, habe ich eine zweite Instanz des VS gestartet und das erste mit „attach to process“ gedebugged. Dabei fand ich heraus, dass der Designer versucht auf den VirtualPathProvider der HostingEnvironment zuzugreifen. Dieser VirtualPathProvider ist aber zu diesem Zeitpunkt nicht vorhanden. Also null. Ist das ein Bug im Visual Studio? Der Designer muss doch in der Lage sein ein Control zu laden. Für Hilfe wäre ich dankbar.
    <p>
    Der StackTrace des Fehlers im Designer ist:
    </p>
    <em>
    at System.Web.Compilation.BuildManager.GetCacheKeyFro mVirtualPath(VirtualPath virtualPath, Boolean& keyFromVPP)
    at System.Web.Compilation.BuildManager.GetVPathBuildR esultFromCacheInternal(VirtualPath virtualPath)
    at System.Web.Compilation.BuildManager.GetVPathBuildR esultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile)
    at System.Web.Compilation.BuildManager.GetVPathBuildR esultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile)
    at System.Web.UI.TemplateControl.LoadControl(VirtualP ath virtualPath)
    at System.Web.UI.TemplateControl.LoadControl(String virtualPath)
    at Dacuris.Web.SkinnedControl.LoadNamedSkin(String theme, String skin, String fileName)
    </em>
    <p>
    Lange Rede gar kein Sinn. Wie kann man eine ascx Seite, die keine CodeBehinde Datei hat, so laden, dass sie auch im Visual Studio Designer angezeigt wird?
    </p>
Working...
X