Type type = typeof(Product);
DisplayNameAttribute att = (DisplayNameAttribute)type.GetProperty("Name").GetCustomAttributes(typeof(DisplayNameAttribute), true).SingleOrDefault();
Предполагается, что атрибут всегда существует.Изменить для случая, когда это не может быть.
изменить:
Чтобы получить значение string x = att.DisplayName;
Если продукт является базовым классом, используйте Type type = p.GetType();
вместо.