إنشاء WebControls من مسار مؤهل بالكامل (اسم التجميع؟)
-
23-09-2019 - |
سؤال
لدي صفحة ويب في ASP.NET 3.5 ستقوم بإنشاء WebControls ديناميكيًا. سيُعرف WebControls الذي سيتم إنشاؤه بواسطة مسارها المؤهل بالكامل (أي system.web.ui.webcontrols.whance). والسبب في ذلك هو أنني أسمح للمستخدم بتحديد عناصر التحكم التي ستعمل على صفحة الويب. بالطبع ، هناك تعقيد أكثر من هذا ، ولكن هذا هو باختصار.
ببساطة - كيف يمكنني إنشاء WebControl على صفحة ويب من خلال مسار مؤهل تمامًا؟
أدرك أن الإجابة ستنتهي على الأرجح باستخدام التفكير ، لكن لدي خبرة قليلة في استخدام التفكير ولا أريد أن أطلق النار على نفسي من خلال ارتكاب خطأ مبتدئ.
المحلول
حاول الاتصال بهذه الطريقة: Activator.CreateInstance(Type.GetType("TypeName"));
حيث يكون اسم typename اسم مؤهل بالكامل, ، بما في ذلك التجميع. في حالتي بدا الأمر بهذه الطريقة:
Activator.CreateInstance(Type.GetType("System.Web.UI.WebControls.Label, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"));
للتأكد من الاسم الكامل في حالتك ، حاول الإخراج typeof(System.Web.UI.WebControls.Label).FullName
واستخدامه كنمط
نصائح أخرى
object widget = Activator.CreateInstance ( Assembly.GetType ( name ) );
حيث الاسم هو سلسلة النوع المؤهل بالكامل