C# 预处理器 - 禁用 XAML 设计器的代码
本文关键字:代码 XAML 预处理 处理器 禁用 | 更新日期: 2023-09-27 17:57:11
不幸的是,我发现有时我正在编写的代码虽然在运行时完全没问题,但在Visual Studio 2010中使用XAML/Designer时会让我头疼。 我最喜欢的示例包括多个用于调试的 MessageBox,但是,当前示例是构造函数中非常轻的单例样式条件,这意味着当我想要对 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; }
}
}
您可以使用 DesignerProperties.GetIsInDesignMode 方法,如下所示:
if (!DesignerProperties.GetIsInDesignMode(this) && _instance != null)
throw new NotSupportedException(...)