c# writing custom attributes