title: C# attribute with complex structure
body: <p>EDIT: looks like it's not possible to have only one attribute with everything inside like solution #2, so I ended up using solution #3 which is not error prone unlike solution #1.</p>
  
  <p>I have an attribute as follow:</p>
  
  <pre><code>// Solution #1 (working)
  [Module(Name="Module1", Guid="xxxxx",
    NeededFiles_Name = new string[]
    {
      "module1Conf.xml",
      "module1.sql",
      "resourcesWindows",
      "resourcesUnix",
    },
    NeededFiles_OS = new OSType[]
    {
      All,
      All,
      Windows,
      Unix,
    }
    NeededFiles_Component = new ComponentType[]
    {
      Server,
      Server,
      All,
      All
    }
  )]
  </code></pre>
  
  <p>The problem is that it's not easy to fill the NeededFile_Xxx properties. It would be easier to have only one property like</p>
  
  <pre><code>// Solution #2 (NOT working)
  [Module(Name="Module1", Guid="xxxxx",
    NeededFile = new FileInfo[]
    {
      new FileInfo("module1Conf.xml", All, Server),
      ...
    }
  )]
  </code></pre>
  
  <p>but it's not allowed by the compiler (<em>NeededFile is not a valid named attribute argument because it is not a valid attribute parameter type</em>.</p>
  
  <p>I could also divide my attribute into severals and do</p>
  
  <pre><code>// Solution #3 (working)
  [Module(Name="Module1", Guid="xxxxx"]
  [NeededFile("module1Conf.xml", All, Server)]
  [NeededFile("module1.sql", All, Server)]
  [NeededFile(...)]
  </code></pre>
  
  <p>but I'd rather keep everything in the same.</p>
  
  <p>Is it possible to do it? Is there a better way to do it?</p>