 <p>Generally speaking, yes.</p> <p>You can get type of class with <code>typeof(YourClassHere)</code> or type of object with <code>yourObject.GetType()</code>.</p> <p>Then you can easily create object with an acitvator: <code>Activator.CreateInstance(type, parameters for constructor)</code></p> <p><strong>EDIT AFTER QUESTION EDIT</strong> It's even easier when you have the generic.</p> <pre><code>public void DoWork&lt;TClass&gt;(int time) { IJobDetail job = (IJobDetail) Activator.CreateInstance(typeof(TClass), null /* no parameters */); job.WithIdentity("job1", "group1"); job.Build(); } </code></pre>