Edit:
Of course my real code doesn't look exactly like this. I tried to write semi-pseudo code to make it more clear of whay I wanted to do.
Looks like it just messed things up instead.
So, what I actually would like to do is this:
Method<Interface1>();
Method<Interface2>();
Method<Interface3>();
...
Well ... I thought that maybe I could turn it into a loop using reflection. So the question is: How how do I do it. I have very shallow knowledge of reflection. So code examples would be great.
The scenario looks like this:
public void Method<T>() where T : class
{}
public void AnotherMethod()
{
    Assembly assembly = Assembly.GetExecutingAssembly();
    var interfaces = from i in assembly.GetTypes()
    where i.Namespace == "MyNamespace.Interface" // only interfaces stored here
    select i;
    foreach(var i in interfaces)
    {
        Method<i>(); // Get compile error here!
    }
Original post:
Hi!
I'm trying to loop through all interfaces in a namespace and send them as arguments to a generic method like this:
public void Method<T>() where T : class
{}
public void AnotherMethod()
{
    Assembly assembly = Assembly.GetExecutingAssembly();
    var interfaces = from i in assembly.GetTypes()
    where i.Namespace == "MyNamespace.Interface" // only interfaces stored here
    select i;
    foreach(var interface in interfaces)
    {
        Method<interface>(); // Get compile error here!
    }
}
The error I get is "Type name expected, but local variable name found". If I try
...
    foreach(var interface in interfaces)
    {
        Method<interface.MakeGenericType()>(); // Still get compile error here!
    }
}
I get "Cannot apply operator '<' to operands of type 'method group' and 'System.Type'" Any idea on how to get around this problem?
 
     
     
    