C#如何将程序集加载到应用程序域中

C#如何将程序集加载到应用程序域中,第1张

可以通过多种方式将

程序

加载

应用程序

中。推荐方式是使用

System

Reflection

Assembly类的static(在

Visual

Basic

中为Shared)Load方法加载程序集的其他方式包括:Assembly类的LoadFrom方法加载已给定其文件位置的程序集。通过此方法加载程序集将使用不同的加载上下文。

ReflectionOnlyLoad和ReflectionOnlyLoadFrom

将程序集加载到仅反射上下文中。

注意仅反射上下文是

NET

Framework

20

版中的新增功能。

诸如CreateInstance方法和AppDomain类的CreateInstanceAndUnwrap

之类的方法可将程序集加载到应用程序域中。

Type类的GetType方法可加载程序集。

SystemAppDomain类的Load方法可以加载程序集,但该方法主要用于

COM

互 *** 作性

。不应使用该方法将程序集加载到除从其调用该方法的应用程序域以外的其他应用程序域。

注意从

NET

Framework

20

版开始,对于版本号高于当前已加载运行库的

NET

Framework

版本,运行库将不加载由其进行编译的程序集。这同样适用于主版本号和次版本号的组合。

可以指定在应用程序域间共享来自已加载程序集的实时

(JIT)

编译代码的方式。有关更多信息,请参见

应用程序域和程序集。

示例下面的代码将名为exampleexe或exampledll的程序集加载到当前应用程序域中,从该程序集获取名为Example的类型,为该类型获取名为MethodA的无参数方法,然后执行该方法。有关从所加载程序集中获取信息的完整讨论,请参见动

态加载和使用类型。

是的。每次使用程序包都必须首先加载。

比如:library(rootSolve)

library(tm)

在R中加载包是非常容易的,有两个函数可以做到:library 和 require。他们之间有一些细微的差别,主要的区别在于 require 会返回一个布尔值(True或False)来表示被加载的包是不是可用,而 library 函数会根据调用方式不同而有不同返回结果(这点在本书不重要)。要加载这些包可以用library或require任意一种。

 两种方法启用自动加载程序。

方法1、可以修改安装文件下support目录中acadlsp文件(2005版为acad2005doclsp文件),找到中间有" autoload"语句,在语句后面依"葫芦画瓢",编辑一个加载语句保存退出即可。

(ISP文件大部分是病毒,或者被认为是病毒文件,慎用)。

方法2、让ARX程序随CAD一起启动的方法:

通过研读ObjectARX自带的帮助文档,找到方法,非托管的ARX程序的加载。

非托管的ARX程序是指用C++编译的以arx为后缀的动态链接库文件,实现方法很简单,只需在注册表中加入以下信息(示例):

Windows Registry Editor Version 500[HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R162\ACAD-4001:804\Applications\LubanRen]"LOADCTRLS"=dword:00000002"LOADER"="D:\\LubanRen Soft\\鲁班人工具箱\\LubanRenarx"。

说明:在Applications项下创建一个以自己程序名命名的新的“项”(如:LubanRen),然后在此新项下创建两个新键:"LOADCTRLS"和"LOADER"。

它们第一个是控制程序随CAD加载的方式(新建“DWORD”值),另一个是告诉CAD所要加载的程序的路径(新建“字符串值”)。

托管的ARX程序的加载:

托管的ARX程序是指由net程序(C#,C++net或VBnet)编译的以dll为后缀的动态链接库文件,这种程序的加载和非托管的程序加载类似,在注册表中加入以下信息

Windows Registry Editor Version 500

[HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R162\ACAD-4001:804\Applications\LubanRen]"LOADCTRLS"=dword:00000002"LOADER"="D:\\LubanRen Soft\\鲁班人工具箱\\LubanRendll""MANAGED"=dword:00000001。

说明:和非托管的程序相比,只要多创建一个“MANAGED”键,并设为Ox01,告诉CAD这是托管程序即可。

以上就是关于C#如何将程序集加载到应用程序域中全部的内容,包括:C#如何将程序集加载到应用程序域中、r语言每次都要重新加载程序包么、CAD中如何永久加载一个程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9872890.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存