To do this, you can use the special attribute:
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)] public sealed class QueryAttribute : Attribute { public string QueryString { get; private set; } public QueryAttribute(string queryString) { QueryString = queryString; } public static string GetQueryStringForType(Type type) { var queryAttr = type.GetCustomAttributes(typeof(QueryAttribute), false) .FirstOrDefault() as QueryAttribute; return queryAttr != null ? queryAttr.QueryString : null; } }
Use it for your classes:
[Query("AccountSet")] public class RootObject : Root, IRootObject { public D d { get; set; } }
And get a value like this:
public void Connect<T>() where T : Root, IRootObject { var query = QueryAttribute.GetQueryStringForType(typeof(T)); }
source share