Препроцессор C # - Код отключения для XAML Designer

К сожалению, я обнаружил, что иногда код, который я пишу, хотя и отлично работает во время выполнения, вызывает у меня головные боли при работе с 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; }
        }
    }
5
задан Melodatron 20 May 2011 в 13:53
поделиться