title: Only one of arguments should be allowed with CommandLineParser
body: <p>Im working on a console tool which accepts some arguments and then parses to the <strong>Option</strong> class.</p>
  
  <p>What I need is a property that will verify if <strong>only one of many marked fields in Option class</strong> has values (arguments were delivered).</p>
  
  <p>Ex.
  Its ok when we run:</p>
  
  <p>my.exe -a</p>
  
  <p>my.exe -b</p>
  
  <p>but NOT:</p>
  
  <p>my.exe</p>
  
  <p>my.exe -a -b</p>
  
  <p>CommandLine.OptionAttribute cannot do such a thing. What i did is:
  Main class args[] got extension .Parse:</p>
  
  <pre><code>args.Parse(options)` //where options is my Options class
  </code></pre>
  
  <p>inside:</p>
  
  <pre><code>CommandLine.Parser.Default.ParseArguments(args, options);
  var isOnlyOneOfMany = options.GetType().GetProperties().Where(prop =&gt; Attribute.IsDefined(prop, typeof(OneOfMany)) &amp;&amp; prop.GetValue(options) != null).Count() == 1;
  </code></pre>
  
  <p>how to do this better way?</p>