我花了最后一小时试图获取DisplayName应用于a的属性的值Class.
我觉得从方法和属性中获取属性值很简单,但我正在努力学习这门课程.
这个相对较小的问题可以帮助我吗?
以下示例:
班级
[DisplayName("Opportunity")]
public class Opportunity
{
// Code Omitted
}
Run Code Online (Sandbox Code Playgroud)
变量
var classDisplayName = typeof(T).GetCustomAttributes(typeof(DisplayNameAttribute),true).FirstOrDefault().ToString();
Run Code Online (Sandbox Code Playgroud)
我花了很多时间在MSDN和SO上,但我想我错过了一些简单的东西.
对于未来的读者来说也是一个很好的问题
任何帮助非常感谢!
使用你的例子我得到它的工作:
var displayName = typeof(Opportunity)
.GetCustomAttributes(typeof(DisplayNameAttribute), true)
.FirstOrDefault() as DisplayNameAttribute;
if (displayName != null)
Console.WriteLine(displayName.DisplayName);
Run Code Online (Sandbox Code Playgroud)
这输出了"机会".
或者对于更通用的方式,您似乎正在这样做:
public static string GetDisplayName<T>()
{
var displayName = typeof(T)
.GetCustomAttributes(typeof(DisplayNameAttribute), true)
.FirstOrDefault() as DisplayNameAttribute;
if (displayName != null)
return displayName.DisplayName;
return "";
}
Run Code Online (Sandbox Code Playgroud)
用法:
string displayName = GetDisplayName<Opportunity>();
Run Code Online (Sandbox Code Playgroud)
GetCustomAttributes()返回一个object[],因此您需要在访问所需的属性值之前先应用特定的强制转换.
| 归档时间: |
|
| 查看次数: |
6304 次 |
| 最近记录: |