我有一個通用的接口,我想有一個實施的數據類型的列表。 使用下面的代碼我沒有得到任何返回的類型。 (在類型T)獲取實施類型的通用接口
var type = typeof (IDataTypeConverter<>);
var types = AppDomain.CurrentDomain.GetAssemblies()
.SelectMany(x => x.GetTypes())
.Where(x => type.IsAssignableFrom(x) && !x.IsInterface);
foreach (var t in types)
{
var instance = (IDataTypeConverter)Activator.CreateInstance(t);
PropertiesConverter.Add(t, instance);
}
這是接口的實現的例子:
public class DecimalConverter : IDataTypeConverter, IDataTypeConverter<decimal>
{
...
}
接口它的自我:
我在做什麼錯在這裏,你爲什麼不我在列表中獲得小數作爲類型嗎?
任何想法,我怎麼能拿接口的類型? IDataTypeConverter =十進制代替DecimalConverter –
Freddy
@Freddy:是的,一旦你有接口類型,你可以使用['GetGenericArguments()'](http://msdn.microsoft.com/en-us/library/system.type .getgenericarguments.aspx)來獲得'decimal'泛型參數。 –