如何将图像资源的名称作为字符串

时间:2015-09-05 21:03:47

标签: c# image embedded-resource

我尝试了一些方法来获取名称,包括调查PropertyItems和旧式ToString()方法,以尝试将图像资源的名称作为字符串获取。

我在资源文件中选择了一些图像。使用resource.imageName显示图像没有问题。我想尝试将 imageName 作为字符串,以减少代码中其他地方的错误和拼写错误。

使用resource.imageName.ToString()为我提供了字符串System.Drawing.Bitmap

2 个答案:

答案 0 :(得分:1)

您可以创建一个功能:

public static string GetPropertyName<T>(Expression<Func<T>> propertyExpression)
{
    return (propertyExpression.Body as MemberExpression).Member.Name;
}

然后以这种方式使用它:

public class ClassName {
   public Foo { get; set; }
}
...
...
...
var inst = new ClassName();
var propertyName = GetPropertyName(() => inst.Foo);

我没有提出这个问题,我从其他主题中获取并运行它以查看它是否有效但我的浏览器崩溃了,我无法找到原始主题的链接。我会在找到后立即编辑我的帖子。

修改:I've found it!这是我从中获取代码段的地方。祝你好运。

Edit2:如果您能够轻松获取resource.imageName,那么只需将其传递给GetPropertyName函数即可。如果没有,我想我的答案是不完整的

答案 1 :(得分:1)

在Visual Studio 2015中,您可以使用nameof()

string s = nameof(Resource1.myfile); // s = "myfile"