private void AddRule <T>() where T : class { var type = typeof(T); var attribute = type.GetCustomAttributes(typeof(HtmlNameAttribute), false).FirstOrDefault() as HtmlNameAttribute; if (attribute != null) { var name = attribute.Name; DomElements.Add(name, type); } else { throw new ArgumentException(); } }