C# 加载图像时发生TypeInitializationException

C# 加载图像时发生TypeInitializationException,c#,wpf,image,C#,Wpf,Image,我想做什么: 我想在WPF中看到一个图像 问题: 当我尝试加载图像时,会出现TypeInitializationException 我试图解决这个问题的方法: 我实现了一个try catch。如果第一个图像(我实际上想要的图像)抛出类型初始化异常,我将看到另一个图像(仅用于测试)。第二个图像(来自catch块)可见,但我要查看的图像不可见。两个图像都具有属性“嵌入式资源”。两个图像都位于相同的命名空间(Travelagency.Resources)中,但位于不同的子目录(菜单和TravelDat

我想做什么:

我想在WPF中看到一个图像

问题:

当我尝试加载图像时,会出现
TypeInitializationException

我试图解决这个问题的方法:

我实现了一个
try catch
。如果第一个
图像
(我实际上想要的
图像)抛出
类型初始化异常
,我将看到另一个
图像
(仅用于测试)。第二个
图像
(来自
catch
块)可见,但我要查看的
图像
不可见。两个
图像
都具有属性
“嵌入式资源”
。两个
图像
都位于相同的
命名空间
Travelagency.Resources
)中,但位于不同的子目录(
菜单
TravelDataFilterMenuIcons

C#代码:

TravelDataFilterVM.cs

MenuEntry money = null;
try
{
    money = new MenuEntry(Guid.NewGuid(), Travelagency.Ressources.TravelDataFilterMenuIcons.TravelDataFilterMenuIcon.Euro);
}
catch(TypeInitializationException ex)
{
    money = new MenuEntry(Guid.NewGuid(), Travelagency.Ressources.Menu.MenuIcon.MenuImage);
}
TravelDataFilterMenuIcon.cs
(不工作)

Menu.cs
(不起作用)

编辑

我发现每个
图像
都可以从
菜单加载。cs
但是没有
图像
可以从
TravelDataFilterVM.cs
加载。问题不在于路径或
图像的某些内容,而在于
类。下面是两个

TravelDataFilterVM.cs
(不工作)

Menu.cs
(不起作用)


现在它工作了!我不知道为什么。我什么也没变。我甚至没有重新启动任何程序。

例外情况是。。。?(顺便说一句,我注意到“Resources”这个词在这两种情况下都拼写错误——您的菜单图像真的是“menu.menu5.png”吗?第一个图像会出现类型初始化异常,这就是为什么第二个图像总是被加载的原因。是的,由于对不同的类/图像进行了一些测试,它的拼写错误,是menu5.png。您有不同的路径
Travelagency.resources.TravelDataFilterMenuIcons.euro.png
vs
Travelagency.resources.Menu.menu5.png
。如果尝试在菜单中加载
Travelagency.resources.TravelDataFilterMenuIcons.euro.png
,会发生什么情况?
Menu.cs
中的此代码确实有效:
public static readonly BitmapImage euro=ImageLoader.LoadImageAsBitmap(“Travelagency.resources.TravelDataFilterMenuIcons.euro.png”);
public static readonly BitmapImage Euro = ImageLoader.LoadImageAsBitmap("Travelagency.Ressources.TravelDataFilterMenuIcons.euro.png");
public static readonly BitmapImage MenuImage = ImageLoader.LoadImageAsBitmap("Travelagency.Ressources.Menu.menu5.png");
using System.Windows.Media.Imaging;

namespace Travelagency.Ressources.TravelDataFilterMenuIcons
{
    public class TravelDataFilterMenuIcon
    {
        private TravelDataFilterMenuIcon() { }

        public static readonly BitmapImage Euro = ImageLoader.LoadImageAsBitmap("Travelagency.Ressources.TravelDataFilterMenuIcons.euro.png");
        public static readonly BitmapImage Fuenfzigeuro = ImageLoader.LoadImageAsBitmap("Travelagency.Ressources.TravelDataFilterMenuIcons.fuenfzigeuro.png");
        public static readonly BitmapImage Hunderteuro = ImageLoader.LoadImageAsBitmap("Travelagency.Ressources.TravelDataFilterMenuIcons.hunderteuro.png");
    }
}
using System.Windows.Media.Imaging;

namespace Travelagency.Ressources.Menu
{
    public class MenuIcon
    {
        private MenuIcon() { }

        public static readonly byte[] MENU = ImageLoader.LoadImageAsByteArray("Travelagency.Ressources.Menu.menu5.png");
        public static readonly BitmapImage MenuImage = ImageLoader.LoadImageAsBitmap("Travelagency.Ressources.Menu.menu5.png");
    }
}