测试创建SolidColorBrush的方法时出现UnauthorizedAccessException

时间:2014-12-04 14:18:28

标签: c# multithreading xaml exception windows-phone-8

我已经在互联网上看到了这方面的几个主题,但我觉得它们都不适用于我的情况......要么就是这样,要么我只是不知道他们的一件事(很可能)。

问题是:我正在为转换器方法编写一个测试,"转换"枚举到适当的SolidColorBrush。

public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
    Brush result = new SolidColorBrush(Colors.White);

    if (value != null)
    {
        switch ((InstallationStatus)value)
        {
            case InstallationStatus.Draft:
                result = new SolidColorBrush(Colors.DarkGray);
                break;
            case InstallationStatus.Ready:
                result = new SolidColorBrush(Colors.Green);
                break;
            case InstallationStatus.Uploaded:
                result = new SolidColorBrush(Colors.Orange);
                break;
            case InstallationStatus.Error:
                result = new SolidColorBrush(Colors.Red);
                break;
            default:
                break;
        }
    }
    return result;
}

从应用程序的视图调用时,它可以自行运行。 我也有一个测试方法,基本上是这样做的:

InstallationStatusBrushConverter converter = new InstallationStatusBrushConverter();
object result = converter.Convert(null, null, null, null);

测试方法调用Convert,它尝试实例化结果字段,但抛出UnauthorizedAccessException ... 有没有人知道这里发生了什么?

1 个答案:

答案 0 :(得分:0)

Can CultureInfo.CurrentCulture ever be null?

可能的错误来源 - System.Globalization.CultureInfo不应为null。相反,在函数参数中,将culture参数更改为System.Globalization.CultureInfo.CurrentCulture