1

我想要一个安全控件,但也想要扩展 asp.net 框架提供的现有按钮或文本框。所以我的类 dec 看起来像:

public class MyTextBox : System.Web.UI.WebControls.TextBox

我正在考虑类似的策略模式,但不确定如何将 ISecureControl 传递给 ctor 或者可能是 init 方法之类的?

我可能正在回答我自己的问题。我想我可能能够覆盖 OnInit 或 OnPreInit 或其他东西并在那里创建并传递它,但不确定是否有办法在创建时以某种方式直接传递它?

override OnInit()
{
  secureControl = new MySecureControl();
}

override OnRender()
{
  if(secureControl.CanRender)
    base.OnRender();
}

有没有更好的办法?还是我在这里解决我自己的问题...

4

2 回答 2

2

为什么 MyTextBox 不只实现 ISecureControl?

public class MyTextBox : TextBox, ISecureControl
于 2009-02-26T18:49:49.947 回答
1

是的,就是这样。对于那种特定的情况,我会继续前进。如果 MySecureControl 有自己的构造函数参数,您可以查看依赖注入,但这意味着您将使用 ObjectFactory.GetInstance<> 之类的东西,或者只是 ObjectFactory.BuildUp(this) 并使用属性注入,而不是使用 new。不要出汗:)

于 2009-02-26T18:46:46.913 回答