Allgemeine Überlastungsauflösung
Ich habe das folgende Szenario:
class Foo { }
class Foo<T> : Foo { }
nd dann zwei Method
void DoStuff(Foo foo)
{
DoStuffImpl(foo);
}
void DoStuffImpl(Foo foo)
{
Console.WriteLine("A");
}
void DoStuffImpl<T>(Foo<T> foo)
{
Console.WriteLine("B");
}
void Main()
{
DoStuff(new Foo<int>()); // prints A
}
(Hinweis, der Code wurde im Browser geschrieben, beschreibt aber die Situation, in der ich mich befinde)
Wie kann ich die generische Methode aufrufen und B ausgeben?
Kann das überhaupt ohne Reflektion gemacht werden? Ich habe einige Ideen, wie man es mit Reflektion machen kann, aber ich suche nach einer saubereren Lösung, falls es eine gibt.
Hinweis: Ich kann nicht machenDoStuff
generisch, da dies mit WCF verwendet wird und offene generische Typen nicht zulässig sind.