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

本文共 1971 字,大约阅读时间需要 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 实现的实例。

转载地址:http://cxycl.baihongyu.com/

你可能感兴趣的文章
鸿蒙系统是不是推迟发布了,鸿蒙系统2.0来了,华为Mate40推迟发布
查看>>
android项目分层,(一)安卓框架搭建之项目分层、主题、gradle基本配置
查看>>
unity android texture compression,关于Unity中Texture压缩问题
查看>>
android bundle多少数据,android bundle存放数据详解
查看>>
html %3cp%3e字体斜体,icon.html
查看>>
html5 图片拖动效果,HTML5 P5.js 图片拖动交互效果
查看>>
html跨域post请求数据,跨域post请求分为简单请求和非简单请求
查看>>
html数据线,数据线是什么
查看>>
html5 api navigator,Navigator - 《HTML5 Plus API 指南》 - 书栈网 · BookStack
查看>>
javascript和css和html,html、css和javascript简介
查看>>
华为交换机VRP用户界面配置及Telnet登录实验
查看>>
针对Redis队列的理解,实例操作
查看>>
你所不了解的静态路由特点及配置
查看>>
Objective-C学习备忘单
查看>>
通通透透看无服务器计算:由来、场景和问题
查看>>
PowerShell 运维菜鸟系列-01-批量为n台服务器导入PFX证书(2017年除夕奉献)
查看>>
致那些想学习IT技术的学生
查看>>
【桌面虚拟化】之三 Persistent vs NonP
查看>>
(转载)C#richTextBox中的内容换行
查看>>
WCF-002:WCF的发布-正式发布
查看>>