c# 动态加载dll和添加引用dll区别在于哪里

动态加载形式如[DllImport("dll文件")],直接引用就是添加引用不要复制的,尽量详细一点说明... 动态加载形式如[DllImport("dll文件")],
直接引用就是添加引用
不要复制的,尽量详细一点说明
展开
 我来答
houseAmazeUI
2016-02-03 · TA获得超过364个赞
知道答主
回答量:70
采纳率:0%
帮助的人:16.8万
展开全部
  如果说区别,就是有些时候应用程序根本不可能预先知道需要访问的DLL,所以无法引用。

  例如你写一个”快递单处理流程“软件,但是你不知道到底有几百种快递单,你可以在你的程序中写一个通用的快递单的接口(从中可以读取布局的模式信息,例如读取BitImage类型的底图,读取各个业务数据的文本框的坐标位置,等),并且写两种具体的快递单作为测试。

  可是实际使用时,另外有198种快递单,怎么办?这就需要用一个配置文件,将其它快递单”应该从哪一个名称的DLL中的什么类型(显然全都实现了你的接口)取得“信息一一列出来,这样才能让你的程序真正发挥价值。

  这种扩展设计,可能就需要动态加载DLL。

  因此这取决你是懂设计的人,还是不懂设计的人。

  没有必要动态加载DLL的时候,我们当然去动态调用它,而应该直接在工程中引用它。只有在必要的时候才动态加载DLL。
追问
能否解释下什么时候是没必要动态加载的时候吗?
jinghan_li
推荐于2017-12-16 · 超过15用户采纳过TA的回答
知道答主
回答量:41
采纳率:0%
帮助的人:20.9万
展开全部
动态记载DLL的特点:
    利用反射进行动态加载和调用.
Assembly assembly=Assembly.LoadFrom(DllPath); //利用dll的路径加载,同时将此程序集所依赖的程序集加载进来,需后辍名.dll

添加引用的特点:
  可以直接调用
  A a=new A();
  a.say("51pansou");
追问
利用dll的路径加载,需要把这个dll放到工程下吗,我看到的都是直接写dll文件名,没有什么路径设置的啊
追答

对的,需要把这个dll放到当前工程下面  建议你下载 微软的PetShop 源码看看

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式