Причем, если проект чисто под Windows (а это, судя по-всему так), то можно реализовать свойство DesignMode для компонента несколькими способами. Сразу оговорюсь, что танцы с бубном, приведенные ниже, имеют смысл только тогда, когда нужно знать режим работы находясь в конструкторе компонента. В иных случаях стандартного ISite.DesignMode вполне достаточно.
1.
Код | public new bool DesignMode { get { return { System.Diagnostics.Process.GetCurrentProcess().ProcessName == "devenv" }; } }
|
или еще один вариант, но этот уже на все случаи жизни:
Код | public new bool DesignMode { if (Site != null) return Site.DesignMode;
StackTrace stackTrace = new StackTrace(); int frameCount = stackTrace.FrameCount - 1; for (int i = 0; i < frameCount; ++i) { Type type = stackTrace.GetFrame(i).GetMethod().DeclaringType; if (typeof(IDesignerHost).IsAssignableFrom(type)) return true; } return false; }
|
|