Erstellen WebControls von vollständig qualifizierten Pfad (Assemblierung-Name?)
-
23-09-2019 - |
Frage
Ich habe eine Webseite in ASP.NET 3.5, die WebControls dynamisch zu schaffen wird. (- System.Web.UI.WebControls.whatever ie) Die WebControls, dass es sich, zu schaffen wird durch ihren vollständigen Pfad bekannt sein. Der Grund dafür ist, dass ich der Benutzer bin ermöglicht zu entscheiden, was Kontrollen auf der Webseite gehen. Natürlich gibt es mehr Komplexität als das, aber das ist es auf dem Punkt.
Einfach gesagt - wie erstelle ich eine WebControl auf einer Webseite, indem sie es vollständig qualifizierter Pfad ist
Ich weiß, dass die Antwort wahrscheinlich Reflexion am Ende, aber ich habe wenig Erfahrung Reflexion mit und ich will mich nicht in den Fuß schießen, indem ein Neuling Fehler zu machen.
Lösung
versuchen, auf diese Weise zu nennen: Activator.CreateInstance(Type.GetType("TypeName"));
Dabei gilt Type-Name ist voll qualifizierten Namen , einschließlich Montage. in meinem Fall sah es so aus:
Activator.CreateInstance(Type.GetType("System.Web.UI.WebControls.Label, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"));
über vollständige Namen sicher sein, in Ihrem Fall, versuchen Sie die Ausgabe typeof(System.Web.UI.WebControls.Label).FullName
und verwenden Sie es als ein Muster
Andere Tipps
object widget = Activator.CreateInstance ( Assembly.GetType ( name ) );
wobei Name der Zeichenfolge des vollständig qualifizierten Typ ist