我想知道是否有可能將一個對象轉換爲類型...我剛開始使用反射,所以也許我做的都錯了,但這裏是我想要做的:鑄造到一個類型
...
Type type = ...;
Type interfaceType = someOtherType.GetInterface("IConverter`2");
return (Cast to interfaceType)Activator.CreateInstance(type);
是否可以轉換爲接口?
更新:
編譯器說,T和K可不會被發現。該MyInterface的類型實例知道T和K艙...
public IConverter<T, K> GetConverter(Type type)
{
if (dtoModelDictionary.ContainsKey(type))
{
Type foundType = dtoModelDictionary[type];
Type myInterface = foundType.GetInterface("IConverter`2");
return (IConverter<T, K>)Activator.CreateInstance(foundType);
}
else if (dalModelDictionary.ContainsKey(type))
{
Type foundType = dalModelDictionary[type];
return (IConverter<T, K>)Activator.CreateInstance(foundType);
}
else
{
throw new System.Exception();
}
}
二更新:
public SomeClass GetConverter(Type type)
{
if (dtoModelDictionary.ContainsKey(type))
{
Type foundType = dtoModelDictionary[type];
Type myInterface = foundType.GetInterface("IConverter`2");
IConverter<T, K> converter = (IConverter<T, K>)Activator.CreateInstance(foundType);
return converter.someMethod();
}
}
THX,我更新了一些代碼的問題。你的返回值(T)是我的編譯器不喜歡的,因爲它表示類型或名稱空間T無法找到。 – 2009-04-20 07:31:01