我想将一个动态创建的对象转换为它扩展的特定接口。
示例:
动态加载dll:
public class Foo: IBar
{
}
实际计划:
var obj = code; // load assembly and fetch object
Type type = obj.GetType().GetInterface("IBar");
IBar bar = (type) obj;
显然这不起作用,因为你无法转换为类型。还有其他办法吗?
答案 0 :(得分:4)
你应该有两个dll。一个具有实现IBar
的接口,由程序和动态库引用。第二个是动态库。
然后你可以正常演员:
IBar bar = (IBar) obj;