如何在 C# 中获取应用程序设置的名称?

2024-03-30

在Visual C#的应用程序设置中,我们可以创建一系列具有特定Name、Type、Scope和Value的设置。我可以通过代码访问该值:

string color= Myproject.Properties.Settings.Default.mycolor;

如何在输出中获得“mycolor”(该设置的名称)?


如果您想要设置的名称,那么您需要获取属性名称。在书里.NET 中的元编程 http://www.manning.com/hazzard/,Kevin Hazzard 有一个看起来像这样的例程:

/// <summary>
/// Gets a property name string from a lambda expression to avoid the need
/// to hard-code the property name in tests.
/// </summary>
public static string GetPropertyName<T>(Expression<Func<T>> expression)
{
    MemberExpression body = (MemberExpression)expression.Body;
    return body.Member.Name;
}

要调用它,您可以这样做:

string propertyName = GetPropertyName(() => Myproject.Properties.Settings.Default.mycolor);

我在我的一些项目中添加了一个静态反射实用程序,以允许访问此工具和其他工具。

EDIT

2015 年 7 月 20 日被设置为 Visual Studio 2015 和 .NET 4.6 的 RTM 日期,这似乎是更新的好时机。

令人高兴的是,我上面的所有代码都在 C# 6 (.NET 4.6) 中消失了,因为现在有一个新的 nameof 表达式可以轻松处理这个问题:

string propertyName = nameof(Myproject.Properties.Settings.Default.mycolor);

一些新功能在MSDN 博客 http://blogs.msdn.com/b/csharpfaq/archive/2014/11/20/new-features-in-c-6.aspx.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 C# 中获取应用程序设置的名称? 的相关文章

随机推荐