好吧,也許這個標題沒有多大意義,但這是交易。說我有多個類型約束的泛型方法,這本:C#:如何找到並創建滿足多種類型約束的實例
public static void DoSomethingAwesome<T>(T thing)
where T : IThing, IAwesome, IComparable<T>
{
...
}
現在....我怎麼能,使用反射,創造的東西,我可以在那兒送?
如果它只是一個約束,我知道我能做到這一點是這樣的:
var types = assembly
.GetTypes()
.Where(typeof (IThing).IsAssignableFrom)
foreach(var t in types)
DoSomethingAwesome((IThing) Activator.CreateInstance(t));
但是,不能真正轉換爲多個接口...如何在地球上我能解決這個問題?你可以說我非常這裏現在已經失去了:P
標題有那種長而複雜,因爲我不知道怎麼稱呼這一點,請提高,如果你能
我從裏德得到的類型? – Svish 2009-10-05 19:21:54
對不起,我不想複製Reed和Loren關於如何找到合適類型的答案。我假設,使用其他答案,您可以找到合適的類型並實例化一個實例(使用Activator.CreateInstance)。然後將此類型傳遞給MakeGenericMethod,並將實例傳遞給Invoke。對不起,缺乏清晰度。 – itowlson 2009-10-05 19:32:28
啊,想我現在明白了。但笏是米?它應該是通用的嗎? – Svish 2009-10-06 09:30:01