将创建的对象转换为接口类型

时间:2017-10-04 14:42:43

标签: c# .net

我想将一个动态创建的对象转换为它扩展的特定接口。

示例:

动态加载dll:

public class Foo: IBar
{
}

实际计划:

var obj = code; // load assembly and fetch object
Type type = obj.GetType().GetInterface("IBar");

IBar bar = (type) obj;

显然这不起作用,因为你无法转换为类型。还有其他办法吗?

1 个答案:

答案 0 :(得分:4)

你应该有两个dll。一个具有实现IBar的接口,由程序和动态库引用。第二个是动态库。

然后你可以正常演员:

IBar bar = (IBar) obj;