using System;
using System.Reflection;
using System.Collections.Generic;
using System.Text;

namespace CodeAttributeDemo
{
   class Program
   {
      static void Main(string[] args)
      {
         Type t = typeof(Shape);
         DataTableAttribute[] attribs = (DataTableAttribute[])
            t.GetCustomAttributes(typeof(DataTableAttribute), true);
         DataTableAttribute attrib = attribs[0];

         Console.WriteLine("Klasa Shape jest przechowywana w tabeli {0} bazy danych.",
            attrib.TableName);

         DataColumnAttribute[] cols = (DataColumnAttribute[])
            t.GetProperty("Name").GetCustomAttributes(typeof(DataColumnAttribute), true);

         Console.WriteLine("Zachowywana do bazy danych właściwość 'Name' ma nazwę {0} i jest typu {1}.",
            cols[0].ColumnName, cols[0].DataType.ToString());

         Console.ReadLine();
      }
   }
}
