首页 > 编程语言 >C#动态调用外部程序集(该程序集在dll文件中)

C#动态调用外部程序集(该程序集在dll文件中)

时间:2023-01-15 18:04:25浏览次数:54  
标签:C# 代码 程序 System dll fi type 属性


先说一下我的情况,我将一个dll做为资源文件放到了程序中,程序运行时将其释放到指定的目录,

然后再调用该dll中的一个类的一个方法或设置该类的属性的值,这里我主要说的是如何设置外部dll类中

的属性的值,这方面的文章网上很少,我也是经过自己查阅资料,然后测试成功的。

--------------------------------------------------------------------------------------------------------------------------------------

dll文件的导入和释放工作,请参考我的这篇文章:


-------------------------------------------------------------------------------------------------------------------------------------



-------------------------------------------------------------------------------------------------------------------------------------

主要代码如下:

//加载dll中的程序集,参数的dll文件的完整路径
Assembly ass = Assembly.LoadFrom("C:\\A.dll");

//获取所要使用的类,类名要包括命名空间
Type type = ass.GetType("Sunisoft.IrisSkin.SkinEngine");

//实例化类,这里我使用的是有参数的类的构造方法
//如果没有构造参数,把下面代码的第二个参数去掉即可
Object obj = Activator.CreateInstance(type,((System.ComponentModel.Component)(this)));

//从类中获取属性
//System.Reflection.FieldInfo fi = type.GetField("SkinFile");//原来我用的是这行代码,所以出错
System.Reflection.PropertyInfo fi = type.GetProperty("SkinFile");//获取类中的属性,用这行代码

//设置类的属性
fi.SetValue(obj,path + @"\AutoAccessQzone_Skin.ssk",null);



-------------------------------------------------------------------------------------------------------------------------------------



​​

您的十分满意是我追求的宗旨。

您的一点建议是我后续的动力。







标签:C#,代码,程序,System,dll,fi,type,属性
From: https://blog.51cto.com/softo/6008858

相关文章

  • C#释放资源文件dll
    本篇文章教你如何往程序中添加资源文件及在程序运行时释放该资源文件,测试时我使用的资源文件类型为dll文件,其它文件类型方法是类似的,各位依葫芦画瓢即可。-----------------......
  • c++求绝对值
    ---------------------------------------------------------------------------------------C语言中求绝对值的函数为abs(),在C++中对函数abs()进行了重载,这样方便了我们的......
  • c++设置控制台输出的行数和列数
    ----------------------------------------------------------------------------------有时候因为要输出的内容很多,控制台一页显示不完,这时我们可以通过设置控制台输出的行......
  • react-路由-新版本新写法
    importReact,{Component}from"react";import{Link,Route,Routes}from"react-router-dom";importHomefrom"./components/Home";importAboutfrom"./co......
  • [Java SE] JDK版本特性解读:@PostStruct[JDK1.6-JDK1.8]
    [email protected]概述定义及用途@PostConstruct(javax.annotation.PostConstruct)注解好多人以为是Spring提供的。而实际上是Java自身的注解。Java中该注解的说明:@P......
  • nginx配置安全漏洞之CRLF注入漏洞
    CRLF漏洞原理参考:https://www.leavesongs.com/PENETRATION/Sina-CRLF-Injection.htmlCRLF是”回车+换行”(\r\n)的简称。在HTTP协议中,HTTPHeader与HTTPBody是用两个CRL......
  • 交叉熵(Cross-Entropy)损失
    损失函数和误差函数在大多数时候,损失函数和误差函数代表了差不多的意思,但他们仍有细微的差别。误差函数计算我们的模型偏离正确预测的程度。损失函数对误差进行操作,以量化......
  • c#同或,异或
                                                         ......
  • if和switch
    1packageFlowControl;23importjava.util.Scanner;45publicclassDemo05If{6publicstaticvoidmain(String[]args){7Scanners=n......
  • USACO 测试赛2
    USACO测试赛2D2ege.奶牛唱歌问题描述一个鲜为人知的事实是,奶牛拥有自己的文字:「牛文」。牛文由26个字母'a'到'z'组成,但是当奶牛说牛文时,可能与我们所熟悉的'abc......