手机网站建设新闻,昆明网站设计价格,个人网站创建,网站关键词百度自然排名优化C#开发的OpenRA动态加载插件DLL里的类实现 由于这款游戏的设计是为了开源设计, 并且可以让不同个人或团体实现自己的游戏, 那么每个人实现的代码是不一样的,算法也是不一样的。 并且可能也拿不到代码一起编译生成一套运行的代码。 这时候,就要考虑使用动态加载类的功能。 意… C#开发的OpenRA动态加载插件DLL里的类实现 由于这款游戏的设计是为了开源设计, 并且可以让不同个人或团体实现自己的游戏, 那么每个人实现的代码是不一样的,算法也是不一样的。 并且可能也拿不到代码一起编译生成一套运行的代码。 这时候,就要考虑使用动态加载类的功能。 意思就是说,每个类定义一定的接口,然后把这些类写在不同的DLL里, 只有当这个DLL加载成功之后,才能创建这个类实例。 要实现上述的目的,就需要先加载DLL的程序集信息,这个在前面的文章里有讨论过。 这里再来说一下,它是通过类ObjectCreator的构造函数来实现加载整个程序集, 然后生成程序集和命名空间数组: readonly (Assembly Assembly, string Namespace)[] assemblies; 然后通过类名称去assemblies查找。 public Type FindType(string className)函数就是实现通过类名称来查找到类。 当找到类型信息之后,就是实现创建了,调用下面的函数: public object CreateBasic(Type type) 并且游戏里有很多资源类型的文件,不同的文件采用读取算法不一样, 所以实现的代码也不一样#