博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[WorldWind学习]10.插件结构
阅读量:6072 次
发布时间:2019-06-20

本文共 2039 字,大约阅读时间需要 6 分钟。

  WW的插件结构很神奇,内部插件编译在DLL中,外部的则直接以.cs文件的形式加载,路径(C:\Program Files (x86)\NASA\World Wind 1.4\Plugins)

  内部的以Assembly类来动态加载,外部的CodeDomProvider动态编译后加载!

  PluginCompiler.cs文件中的方法public void Load(PluginInfo pi)

1  ///  2         /// Load a plugin 3         ///  4         public void Load(PluginInfo pi) 5         { 6             if (pi.Plugin == null) 7             { 8                 // Try to find a suitable compiler 9                 string extension = Path.GetExtension(pi.FullPath).ToLower();10                 Assembly asm = null;11                 if (extension == ".dll")12                 {13                     // Load pre-compiled assembly14                     asm = Assembly.LoadFile(pi.FullPath);15                 }16                 else17                 {18                     CodeDomProvider cdp = (CodeDomProvider)codeDomProviders[extension];19                     if (cdp == null)20                         return;21                     asm = Compile(pi, cdp);22                 }23 24                 pi.Plugin = GetPluginInterface(asm);25             }26 27             string pluginPath = MainApplication.DirectoryPath;28             if (pi.FullPath != null && pi.FullPath.Length > 0)29                 pluginPath = Path.GetDirectoryName(pi.FullPath);30 31             pi.Plugin.PluginLoad(mainApplication, pluginPath);32         }

参考:  

    

     .NET运行时编译学习——CodeDomProvider、CodeCompileUnit和CODEDOM

   CODEDOM学习系列:

  CodeDomProvider 可用于创建和检索代码生成器和代码编译器的实例。代码生成器可用于以特定的语言生成代码,而代码编译器可用于将代码编译为程序集。


  CodeDomProvider 实现通常为一种编程语言提供用于生成代码和管理编译的代码生成和/或代码编译接口。Windows 软件开发工具包 (SDK) 附带的 CodeDomProvider 实现支持多种语言。这些语言包括 C#、Visual Basic、C++、J# 和 JScript。开发人员或编译器提供商可以实现 和 接口,并提供将 CodeDom 支持扩展到其他编程语言的 CodeDomProvider

  计算机配置文件 (Machine.config) 中的 为开发人员和编译器提供商提供了一种机制,以便为其他 CodeDomProvider 实现添加配置设置。

  CodeDomProvider 类提供静态方法以发现和枚举计算机上的 CodeDomProvider 实现。 方法返回计算机上所有 CodeDomProvider 实现的设置。 方法会基于编程语言名称返回特定 CodeDomProvider 实现的设置。 方法返回特定语言的 CodeDomProvider 实现的实例。

转载于:https://www.cnblogs.com/yhlx125/archive/2013/04/20/3016209.html

你可能感兴趣的文章
解释一下 P/NP/NP-Complete/NP-Hard 等问题
查看>>
javafx for android or ios ?
查看>>
微软职位内部推荐-Senior Software Engineer II-Sharepoint
查看>>
sql 字符串操作
查看>>
【转】Android布局优化之ViewStub
查看>>
网络安全管理技术作业-SNMP实验报告
查看>>
根据Uri获取文件的绝对路径
查看>>
Flutter 插件开发:以微信SDK为例
查看>>
.NET[C#]中NullReferenceException(未将对象引用到实例)是什么问题?如何修复处理?...
查看>>
边缘控制平面Ambassador全解读
查看>>
Windows Phone 7 利用计时器DispatcherTimer创建时钟
查看>>
程序员最喜爱的12个Android应用开发框架二(转)
查看>>
vim学习与理解
查看>>
DIRECTSHOW在VS2005中PVOID64问题和配置问题
查看>>
MapReduce的模式,算法以及用例
查看>>
《Advanced Linux Programming》读书笔记(1)
查看>>
zabbix agent item
查看>>
一步一步学习SignalR进行实时通信_7_非代理
查看>>
AOL重组为两大业务部门 全球裁员500人
查看>>
字符设备与块设备的区别
查看>>