using System;
using System.Reflection;
public class Test
{
public static void Main()
{
var res = typeof(Books).GetField("IndianInTheCupboard").GetCustomAttribute<BookDetails>(false).Author;
Console.WriteLine(res);
}
}
[AttributeUsage(AttributeTargets.Field)]
public class BookDetails : Attribute
{
public string Author { get; }
public int YearPublished { get; }
public BookDetails(string author, int yearPublished)
{
Author = author;
YearPublished = yearPublished;
}
}
public enum Books
{
[BookDetails("Jack London", 1906)]
WhiteFange,
[BookDetails("Herman Melville", 1851)]
MobyDick,
[BookDetails("Lynne Reid Banks", 1980)]
IndianInTheCupboard
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uUmVmbGVjdGlvbjsKCnB1YmxpYyBjbGFzcyBUZXN0CnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKCQl2YXIgcmVzID0gdHlwZW9mKEJvb2tzKS5HZXRGaWVsZCgiSW5kaWFuSW5UaGVDdXBib2FyZCIpLkdldEN1c3RvbUF0dHJpYnV0ZTxCb29rRGV0YWlscz4oZmFsc2UpLkF1dGhvcjsKCQlDb25zb2xlLldyaXRlTGluZShyZXMpOwoJfQp9CgpbQXR0cmlidXRlVXNhZ2UoQXR0cmlidXRlVGFyZ2V0cy5GaWVsZCldCnB1YmxpYyBjbGFzcyBCb29rRGV0YWlscyA6IEF0dHJpYnV0ZQp7CiAgICBwdWJsaWMgc3RyaW5nIEF1dGhvciB7IGdldDsgfQogICAgcHVibGljIGludCBZZWFyUHVibGlzaGVkIHsgZ2V0OyB9CgogICAgcHVibGljIEJvb2tEZXRhaWxzKHN0cmluZyBhdXRob3IsIGludCB5ZWFyUHVibGlzaGVkKQogICAgewogICAgICAgIEF1dGhvciA9IGF1dGhvcjsKICAgICAgICBZZWFyUHVibGlzaGVkID0geWVhclB1Ymxpc2hlZDsKICAgIH0KfQoKcHVibGljIGVudW0gQm9va3MKewogICAgW0Jvb2tEZXRhaWxzKCJKYWNrIExvbmRvbiIsIDE5MDYpXQogICAgV2hpdGVGYW5nZSwKCiAgICBbQm9va0RldGFpbHMoIkhlcm1hbiBNZWx2aWxsZSIsIDE4NTEpXQogICAgTW9ieURpY2ssCgogICAgW0Jvb2tEZXRhaWxzKCJMeW5uZSBSZWlkIEJhbmtzIiwgMTk4MCldCiAgICBJbmRpYW5JblRoZUN1cGJvYXJkCgp9