1. string strPath = HttpContext.Current.Server.MapPath("/开放式DLL");
  2. DirectoryInfo df = new DirectoryInfo(strPath);
  3. System.IO.FileInfo[] fr = df.GetFiles();
  4. foreach (System.IO.FileInfo f in fr)
  5. {
  6. if (f.Name.EndsWith("CNKI_Mngr.dll"))
  7. {
  8. System.Reflection.Assembly Mngrass = System.Reflection.Assembly.LoadFrom(f.FullName);//加载程序集
  9.  
  10. Type cnkiStructtp = Mngrass.GetType("CNKI_Mngr.UserStruct");//获取程序集中的实体对象
  11. Type cnkiBasetp = Mngrass.GetType("CNKI_Mngr.UserBaseInfo");
  12. Type cnkiComtp = Mngrass.GetType("CNKI_Mngr.UserComInfo");
  13. object obj1 = System.Activator.CreateInstance(cnkiStructtp);//创建实例
  14. object obj2 = System.Activator.CreateInstance(cnkiBasetp);
  15. object obj3 = System.Activator.CreateInstance(cnkiComtp);
  16. FieldInfo[] BaseInfo = cnkiBasetp.GetFields();//获取创建的实例的所有属性
  17. FieldInfo[] ComInfo = cnkiComtp.GetFields();
  18. FieldInfo[] StructInfo = cnkiStructtp.GetFields();
  19.  
  20. BaseInfo[].SetValue(obj2, enty.UserName);//对指定的属性就行赋值
  21. BaseInfo[].SetValue(obj2, enty.RealName);
  22. BaseInfo[].SetValue(obj2, enty.PassWord);
  23. BaseInfo[].SetValue(obj2, enty.Department);
  24.  
  25. ComInfo[].SetValue(obj3, enty.EMail);
  26. ComInfo[].SetValue(obj3, enty.Phone);
  27.  
  28. StructInfo[].SetValue(obj1, obj2);
  29. StructInfo[].SetValue(obj1, obj3);
  30.  
  31. foreach (System.IO.FileInfo item in fr)
  32. {
  33. if (item.Name.EndsWith("Grid30Register.dll"))
  34. {
  35. System.Reflection.Assembly ass = System.Reflection.Assembly.LoadFrom(item.FullName);
  36. Type tp = ass.GetType("Grid30Register.CreateOperateClass");
  37. MethodInfo meth = tp.GetMethod("PersonLibRegister");
  38. object obj = System.Activator.CreateInstance(tp, new object[] { GridConfig.UserServerIP, GridConfig.UserServerIP, GridConfig.UserServerIP,
  39. KbaseConfig.ServerIP, KbaseConfig.ServerUserName, KbaseConfig.ServerPsw, "", GridConfig.Language });
  40. ReStr = meth.Invoke(obj, new object[] { us }).ToString();
  41. }
  42. }
  43.  
  44. }

在动态引用DLL-A中,当参数是个实体,而实体的属性在另一个DLL-B中。。我们需要得到A这个实体并将其赋值,并将赋值的实体传人DLL-A的方法中。的更多相关文章

  1. ①创建项目testpackage ②在pack2.B中添加方法f ③在类A中添加如下三个成员变量:int型的私有变量i float型的变量f double型的公有变量d 在pack1.B的main方法中为对象a的成员变量f和d分别赋值为2和3 在pack2.C的main方法中为对象a的成员变量d赋值为3

    package pack1; public class A { private int i; float f; public double d; public float getF() { retur ...

  2. 编写一个Animal类,具有属性:种类;具有功能:吃、睡。定义其子类Fish 和Dog,定义主类E,在其main方法中分别创建其对象并测试对象的特性。

    package animal; public class Animal { //成员属性 private String kind; public String getKind() { return k ...

  3. 27.编写一个Animal类,具有属性:种类;具有功能:吃、睡。定义其子类Fish 和Dog,定义主类E,在其main方法中分别创建其对象并测试对象的特性。

    ///Animal类 package d922A; public class Animal { private String kind; public String getKind() { Syste ...

  4. .NET中那些所谓的新语法之一:自动属性、隐式类型、命名参数与自动初始化器

    开篇:在日常的.NET开发学习中,我们往往会接触到一些较新的语法,它们相对以前的老语法相比,做了很多的改进,简化了很多繁杂的代码格式,也大大减少了我们这些菜鸟码农的代码量.但是,在开心欢乐之余,我们也 ...

  5. Java中的参数传值方式

    本文转载自 https://blog.csdn.net/SEU_Calvin/article/details/70089977 1.  你觉得下面程序会输出什么 public static void  ...

  6. 获取url中的参数\+发送ajax请求根路径|+获取复选框的值

    //获取url中的参数function getUrlParam(name) { var reg = new RegExp("(^|&)" + name + "=( ...

  7. C语言中可变参数的函数(三个点,“...”)

    C语言中可变参数的函数(三个点,“...”) 本文主要介绍va_start和va_end的使用及原理. 在以前的一篇帖子Format MessageBox 详解中曾使用到va_start和va_end ...

  8. jQuery 获取url中的参数

    //获取url中的参数 function getUrlParam(name) { var reg = new RegExp("(^|&)" + name + "= ...

  9. jQuery获取URL中的参数

    //获取URL地址栏中的参数 function getUrlParam(name) { var reg = new RegExp("(^|&)" + name + &quo ...

  10. 深入理解为什么Java中方法内定义的内部类可以访问方法中的局部变量

    好文转载:http://blog.csdn.net/zhangjg_blog/article/details/19996629 开篇 在我的上一篇博客 深入理解Java中为什么内部类可以访问外部类的成 ...

随机推荐

  1. 《JavaScript语言精髓与编程实践》读书笔记一

    受到狗哥书单的影响,看到了豆瓣上的评论,买了这本书,然后囫囵吞枣似地用一个月的时间看完了.回头想想自己做的js项目,感觉都羞愧-什么东西都是拿来尝试了一下就用了,其实有很多写得超级丑的地方,看完这个让 ...

  2. javascript、js操作json方法总结(json字符创转换json对象)

    相信前端的同学们对json并不陌生,接触过很多.但是很少人知道json的全称是什么,哈哈,我也是查资 料知道的.(JSON JavaScript Object Notation是一种轻量级的数据交换格 ...

  3. Haskell 差点儿无痛苦上手指南

    趁着自己重装Linux 虚拟机的机会,把安装 haskell 的过程记录一下,顺便帮那些还犹豫徘徊在haskell门外的读者入门. 基本概念: Haskell : 是一门通用函数式语言,差点儿能够进行 ...

  4. Linux下一个Redis启动/关闭/重新启动服务脚本

    脚本功能: 实现redis单机多实例情况下的正常启动.关闭.重新启动单个redis实例.完毕系统标准服务的下面经常使用功能:  start|stop|status|restart 注:redis程序代 ...

  5. Android 图标右上角添加数字提醒

    方法一:使用开源项目ViewBadger,github上的地址:https://github.com/jgilfelt/android-viewbadger 效果如图所示: <TextView ...

  6. 统计Oracle数据库文件的大小

    1. 统计数据文件.暂时文件.日志文件大小 select sum(bytes)/1024/1024/1024 as GB from dba_data_files; select sum(bytes)/ ...

  7. MYSQL 体系结构图-space结构图

  8. 《Android开发艺术探索》读书笔记 (13) 第13章 综合技术、第14章 JNI和NDK编程、第15章 Android性能优化

    第13章 综合技术 13.1 使用CrashHandler来获取应用的Crash信息 (1)应用发生Crash在所难免,但是如何采集crash信息以供后续开发处理这类问题呢?利用Thread类的set ...

  9. 在/etc/password用户名前面加hello,ID前加is

    方法2: #!/bin/sh #set -x file=/etc/passwd while read LINE #for i in `cat $file` do #username=`echo $i| ...

  10. (转)java之多线程

    Java线程:概念与原理 一.操作系统中线程和进程的概念 现在的操作系统是多任务操作系统.多线程是实现多任务的一种方式. 进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程 ...