title: Instance initialization strategy in c#
body: <p>For a class instance to work properly, some fields should be properly initialized, what's your strategy to initialize these field, what should be given through constructor, what should be given through property?</p>
  
  <p>My confusion is that, if the constructor requires a long parameter list, it's hard to use, if through properties, i tend to forget to set some properties.</p>
  
  <p>What's the best practice?</p>