Обходной путь директивы препроцессора режима проектирования - PullRequest
0 голосов
/ 12 июля 2011

Я знаю, что не существует значения директивы препроцессора DESIGN, DESIGN_MODE, DESIGN_TIME и т. Д. Тем не менее, мне нужно что-то, что может сделать свое дело. Я не могу использовать обычный оператор If, потому что в моем случае мне нужно изменить унаследованный класс, чтобы элемент управления отображался правильно во время разработки. Если нет, я получу исключение из-за того, что унаследованный класс является абстрактным классом.

Вот что я хочу сделать:

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

Есть предложения?

Ответы [ 2 ]

0 голосов
/ 21 октября 2014

В прошлом я создавал фиктивный класс в качестве посредника.Иногда 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.

}
0 голосов
/ 12 июля 2011

Попробуйте использовать:

if (this.DesignMode == true)
{    }
else
{    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...