К сожалению, я обнаружил, что иногда код, который я пишу, хотя и отлично работает во время выполнения, вызывает у меня головные боли при работе с XAML / Designer в Visual Studio 2010. Мои любимые примеры включают несколько MessageBoxes для отображения, однако, текущий пример - это очень легкое условие в стиле Singleton в конструкторе, что означает, что мне нужно перестроить решение, когда я хочу внести изменения s к экземпляру в XAML.
Есть ли директива препроцессора, которую я могу использовать для пропуска кода в конструкторе XAML?
Пример:
public class CustomFE : FrameworkElement
{
public CustomFE()
{
#if !XAMLDesigner // Or something similar
if (_instance != null)
throw new NotSupportedException("Multiple instances not supported");
#endif
_instance = this;
}
private static CustomFE _instance = null;
public static CustomFE Instance
{
get { return _instance; }
}
}