设计模式预处理器指令解决方法

发布于 2024-11-19 10:38:31 字数 327 浏览 6 评论 0原文

我知道没有 DESIGN、DESIGN_MODE、DESIGN_TIME 等预处理器指令值。然而,我需要一些可以解决问题的东西。我无法使用普通的 If 语句,因为在我的例子中,我需要更改继承的类,以便控件在设计时正确呈现。如果不是,我将收到一个异常,因为继承的类是一个抽象类。

这就是我想要完成的任务:

Partial Class MyCustomControl
#If DesignMode Then
       Inherits UserControl
#Else
    Inherits WidgetControl
#End If

有什么建议吗?

I know that there is no DESIGN, DESIGN_MODE, DESIGN_TIME, etc preprocessor directive value. However, I need something that can do the trick. I can't use a normal If statement, because in my case I need to change the inherited class so that the control renders properly at design time. If not, I'll receive an exception due to the fact that the inherited class is an abstract class.

Here's what I'm looking to accomplish:

Partial Class MyCustomControl
#If DesignMode Then
       Inherits UserControl
#Else
    Inherits WidgetControl
#End If

Any suggestions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

枫以 2024-11-26 10:38:31

尝试使用:

if (this.DesignMode == true)
{    }
else
{    }

Try using:

if (this.DesignMode == true)
{    }
else
{    }
青春如此纠结 2024-11-26 10:38:31

过去我创建了一个虚拟类作为中间人。有时 VS 仍然会弄清楚你在做什么并感到不安,但通常重新启动 IDE 就可以解决这个问题。

Partial Class MyCustomControl : MyAbstractClass_FAKE_IMPL
{
  //your normal class
}

Partial Class MyAbstractClass_FAKE_IMPL : MyAbstractClass
{

  //let IDE autogenerate implementation code that you are always going to override in reality.

}

In the past I have created a dummy class as a go between. Sometimes VS will still figure out what you are doing and get upset, but normally restarting the IDE will solve that.

Partial Class MyCustomControl : MyAbstractClass_FAKE_IMPL
{
  //your normal class
}

and

Partial Class MyAbstractClass_FAKE_IMPL : MyAbstractClass
{

  //let IDE autogenerate implementation code that you are always going to override in reality.

}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文