يمكن أن تأخذ عناصر تحكم الويب ASP.NET في أي شيء في المنشئ؟
-
09-09-2019 - |
سؤال
أريد أن أحصل على تحكم آمن ولكن أرغب أيضا في تمديد الزر الموجود أو TextBox يوفر إطار ASP.NET. لذلك سوف نصف بلدي ينظر شيئا مثل:
public class MyTextBox : System.Web.UI.WebControls.TextBox
كنت أفكر في شيء مثل نمط استراتيجية للقيام بذلك، ولكن لست متأكدا من كيفية تمريره في ISECURECONTROL في الطاولة أو ربما طريقة INIT أو أي شيء؟
قد أكون جاهدا على سؤالي. أعتقد أنني قد أكون قادرا على تجاوز ONINIT أو ONPREINIT أو شيء ما وإنشاءه وتمريه، لكنه لم يكن متأكدا مما إذا كانت هناك طريقة لتمريرها مباشرة بطريقة أو بأخرى في مكان بطريقة أو بأخرى؟
override OnInit()
{
secureControl = new MySecureControl();
}
override OnRender()
{
if(secureControl.CanRender)
base.OnRender();
}
هل هناك طريقة أفضل؟ أو هل سأحل مشكلتي الخاصة هنا ...
المحلول
نعم، هذا إلى حد كبير. لهذا الوضع المحدد، أود أن أذهب. إذا كان لدى MySecurecontrol معلمات منشئتها الخاصة، فيمكنك النظر في حقن التبعية، ولكن هذا يعني بدلا من استخدام New، وسوف تستخدم شيئا مثل ObjectFactory.GetInstance <> أو easefactory.buildup (هذا) واستخدم حقن الممتلكات. لا تعرق ذلك :)
نصائح أخرى
لماذا لا تقوم MyTextBox فقط بتطبيق ISECURECONTROL؟
public class MyTextBox : TextBox, ISecureControl