2017-10-19 77 views
0

我有以下几点: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类,但它是如何工作的?

+0

而且'Global.Test'的确如此陈述那么简单?此外,没有什么在该TypeInitializationException的内部异常? – Evk

+0

不知道这是否适用于XAML,但值得一试:https://stackoverflow.com/questions/13698388/how-to-troubleshoot-and-debug-visual-studio-design-mode-errors/13698442#13698442 – user6144226

回答

0

谢谢您的帮助。 问题解决了: 最终是由于对象初始化期间的空值问题。 设计人员无法解析一个对象,因此我收到了错误消息。

-1

你可以试试这个变化,你的代码文件“Global.cs”

public class Global改变它public static class Global