title: Criteria for object datasources to display in Visual Studio Report New DataSet?
body: <p>In the "Report Data"..."New Dataset" dialog, I only have about 5 classes.  None of my main business classes are showing up.  Some that do show up don't show and properties.  Some that show up are generic and there is not much point even showing these.  e.g. <code>SortedListBase&lt;T&gt; : SortedKeyedCollection&lt;int, T&gt; where T : IdEntity</code> with two public static methods:</p>
  
  <pre><code>public static SortedListBase&lt;T&gt; Build(string StoredProc, CTorDelegate CTorDelegate, Action&lt;SqlCommand&gt; AddParameters)
  
  public static SortedListBase&lt;T&gt; Build(string StoredProc, CTorDelegate CTorDelegate)
  </code></pre>
  
  <p>which show up as:</p>
  
  <pre><code>SortedListBase`1 (Build)
  SortedListBase`1 (Build)
  </code></pre>
  
  <p>And neither of which can actually do anything since they are completely generic.</p>
  
  <p>Most of my classes have private constructors and this appears to be something which may be stopping them from showing up.  The classes usually have static methods which return the collections, and private constructors and static factory methods.  I made a test class which shows up (it returns null as a List), and then I went and added a private parameterless constructor (it had no explicit constructor when I created it) and bam - it disappeared.</p>
  
  <p>I guess it's because I tend to use fewer classes - I just have the instance methods (for actions, properties, etc) and static methods (for lists and factories) in the same class?  Do most people put their object list methods in its own class which has a public constructor?</p>
  
  <p>Are classes with private constructors not able to be added?  If so, is the best thing to simply make dummy classes which you bind to at design-time and then at runtime point to the method which does actual work and returns a real List?</p>