C#开发的OpenRA动态加载插件DLL里的类实现

Posted caimouse

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)

并且游戏里有很多资源类型的文件,不同的文件采用读取算法不一样,

所以实现的代码也不一样&#

以上是关于C#开发的OpenRA动态加载插件DLL里的类实现的主要内容,如果未能解决你的问题,请参考以下文章

C#开发的OpenRA的加载界面边框的细节

C#开发的OpenRA的加载界面边框的细节

C#开发的OpenRA游戏加载界面的实现

C#开发的OpenRA游戏加载界面的实现

C#开发的OpenRA的游戏主界面怎么样创建2

C#开发的OpenRA的游戏主界面怎么样创建2