سؤال

لدي صفحة ويب في 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 ) );

حيث الاسم هو سلسلة النوع المؤهل بالكامل

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top