XAML 'System.TypeInitializationException' 在设计模式与静态属性
问题描述:
我有以下几点:XAML 'System.TypeInitializationException' 在设计模式与静态属性
文件:UserControlTest.xaml
<UserControl
x:Class="MySolution.Views.UserControlTest"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:MySolution.Views"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:viewModels="clr-namespace:MySolution.ViewModels"
d:DesignHeight="300"
d:DesignWidth="300"
mc:Ignorable="d">
<UserControl.DataContext>
<viewModels:MyViewModel/>
</UserControl.DataContext>
<Grid />
</UserControl>
文件:MyViewModel的.cs
namespace MySolution.ViewModels
{
public class MyViewModel : NotifyPropertyChanged
{
try
{
var test = Global.Test;
}
catch (Exception ex)
{
LogHelper.WriteLogFile(ex);
}
}
}
File:Global.cs
namespace Expert.Engine
{
public class Global
{
public static string Test { get; set; } = "Test Value";
}
}
当我调试XAML(附接至处理菜单=> XDesProc.exe相对于上述XAML文件),则调试器在MyViewModel的.cs Global.Test访问烧制“System.TypeInitializationException”:
try
{
var test = Global.Test;
}
catch (Exception ex)
{
LogHelper.WriteLogFile(ex);
}
有谁知道为什么它不起作用? CLR似乎还没有定义Static类,但它是如何工作的?
答
谢谢您的帮助。 问题解决了: 最终是由于对象初始化期间的空值问题。 设计人员无法解析一个对象,因此我收到了错误消息。
答
你可以试试这个变化,你的代码文件“Global.cs”
public class Global
改变它public static class Global
而且'Global.Test'的确如此陈述那么简单?此外,没有什么在该TypeInitializationException的内部异常? – Evk
不知道这是否适用于XAML,但值得一试:https://stackoverflow.com/questions/13698388/how-to-troubleshoot-and-debug-visual-studio-design-mode-errors/13698442#13698442 – user6144226