 <p>Do you need to use reflection? If you have control of the classes that you are iterating over, it would be better to create an interface. Reflection is slow and should be avoided where possible.</p> <pre><code>public interface IDocumentCreator { void GenerateDocument(); } </code></pre> <p>Add this interface to your classes:</p> <pre><code>public class YourClass : IDocumentCreator { // ... public void GenerateDocument() { // ... } } </code></pre> <p>And then make a <code>List&lt;IDocumentCreator&gt;</code> instead of <code>List&lt;object&gt;</code>. You can then call the method in the normal way:</p> <pre><code>List&lt;IDocumentCreator&gt; allClassesINeedList = ... foreach(IDocumentCreator item in allClassesINeedList) { item.GenerateDocument(); } </code></pre>