- 浏览: 232761 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
net_liu:
zxptian 写道楼主能把TransferFiles也贴出来 ...
c# Socket 文件的传输 -
zxptian:
楼主能把TransferFiles也贴出来分享下吗?
c# Socket 文件的传输
通过Assembly来动态加载DLL
//从DLL文件加载程序集 static Assembly amy = Assembly.LoadFrom("Student.dll"); //创建新类 static Type type = amy.GetType("Student.Stu"); private void button1_Click(object sender, EventArgs e) { //静态成员 string strDyNamic= (string)type.InvokeMember("GetNewValue", BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.Static | BindingFlags.InvokeMethod, null, null, new object[] {"Static"}); MessageBox.Show(strDyNamic); //非静态成员 object obj = type.InvokeMember(null,BindingFlags.DeclaredOnly| BindingFlags.Public|BindingFlags.NonPublic| BindingFlags.Instance|BindingFlags.CreateInstance, null,null,null); string strStatic = (string)type.InvokeMember("GetValue", BindingFlags.DeclaredOnly| BindingFlags.Public|BindingFlags.NonPublic| BindingFlags.Instance|BindingFlags.InvokeMethod, null,obj,new object[]{"NonStatic"}); MessageBox.Show(strStatic); //设置类的属性 type.InvokeMember("Name",BindingFlags.DeclaredOnly| BindingFlags.Public |BindingFlags.NonPublic| BindingFlags.Instance|BindingFlags.SetProperty, null,obj,new object[]{"Test"}); //获取类的属性 string property = (string)type.InvokeMember("Name",BindingFlags.DeclaredOnly| BindingFlags.Public|BindingFlags.NonPublic| BindingFlags.Instance|BindingFlags.GetProperty, null,obj,null); MessageBox.Show(property); }
DLL代码大致如下
namespace Student { public class Stu { public Stu() { strName = ""; } public string GetValue(string strText) { return string.Format("Print NonStatic {0}!", strText); } public static string GetNewValue(string strText) { return string.Format("Print static {0}!", strText); } private string strName; public string Name { get { return strName; } set { strName = value; } } } }
发表评论
-
List转DataTable(反射)
2012-02-06 10:48 2741List转DataTable(反射) // ... -
DataTable转泛型
2012-01-31 17:39 1277DataTable转泛型 public clas ... -
利用鼠标钩子将鼠标中键转为左键
2011-05-04 13:50 1643利用鼠标钩子将鼠标中键转为左键 鼠标 ... -
C# 命名规范
2011-04-01 13:32 1969C# 命名规范 文章分类:.net编程 ... -
VS2008 快捷键大全
2011-04-01 13:30 915VS2008 快捷键大全[转帖] 文章分类 ... -
C# 中的委托和事件
2011-04-01 13:26 1283缩略显示 C# 中的委托和事件 文章 ... -
C#Winform限制Textbox只能输入数字
2011-04-01 13:20 7480C#Winform限制Textbox ... -
C# 跳转语句(break,continue,goto,return,throw)
2011-04-01 12:38 3427C# 跳转语句(break,continue,goto,r ... -
C#窗体固定在桌面上
2010-11-19 10:25 1647[DllImport("user32.dll& ... -
if-else 都输出的方法
2010-10-12 11:44 1306if-else 都输出的方法 if (new Func< ... -
反射技术
2010-09-15 17:42 921什么是反射? 反射就 ... -
发一个接口做参数的例子
2010-08-06 08:48 956发一个接口做参数的例子 回头接口 using System ... -
C#中使用正则表达式
2010-08-04 13:39 1336C#中的正则表达式包含 ... -
C#的几个技巧
2010-08-04 13:35 8481.如果可能尽量使用接 ... -
反射动态调用类成员
2010-08-04 13:30 981使用反射动态调用类成员,需要Type类的一个方法:Invoke ... -
在vs2005中发送邮件
2010-08-03 16:14 1145在vs2005中发送邮件的方法如下: ... -
XML数据排序
2010-06-30 14:20 3405根据XML数据的Index 来进行排序 方法一: ... -
程序动态升级版本
2010-06-30 10:00 997C#实现程序动态升级版本。通过反射获取本地版本,然后跟服务器中 ... -
将DataGridView 数据导出到Excel
2010-06-25 15:46 5092/// <summary> ... -
将Excel导入到Oracle
2010-06-25 15:39 5416private void btnInsert_Click(o ...
相关推荐
本知识点将深入探讨如何在C# WinForm应用中通过配置文件来实现DLL的动态加载。 首先,我们需要理解配置文件的作用。配置文件(如app.config或web.config)用于存储应用程序的设置,如数据库连接字符串、服务端口等...
总结来说,C# WinForm通过配置文件动态加载DLL的关键步骤包括:读取配置文件中的DLL路径,使用`Assembly.LoadFrom`加载DLL,通过反射获取并实例化DLL中的类,最后调用类的方法执行功能。这种方法提高了代码的可维护...
在.NET框架中,我们通常使用`System.Reflection`命名空间中的`Assembly.Load`方法来实现DLL的动态加载。以下是一个简单的示例: ```csharp using System; using System.Reflection; public class Program { ...
在C#中实现动态加载DLL,我们可以使用`Assembly.LoadFile`方法,它允许在运行时加载指定路径的DLL。然而,如果需要卸载这个DLL,就不能简单地使用类似FreeLibrary的函数,因为C#没有提供直接卸载Assembly的API。相反...
本文将详细介绍如何通过反射来实现C#动态加载DLL。 反射是一种强大的特性,允许程序在运行时检查自身并执行元数据中的操作。它能让我们在运行时发现类型、创建对象实例、调用方法、访问属性等。在C#中,`System....
在C#中,我们可以使用`System.Reflection`命名空间中的`Assembly`类来实现动态加载DLL。以下是一些关键步骤: 1. **加载DLL**:使用`Assembly.LoadFrom`或`Assembly.LoadFile`方法加载DLL文件。例如: ```csharp ...
总结一下,`.NET 动态加载DLL文件`是通过`Assembly`类和`AppDomain`实现的,提供了程序在运行时按需加载库的能力,而通过卸载`AppDomain`可以间接地“卸载”DLL。这种技术在插件系统、模块化应用或需要动态扩展功能...
在.NET框架中,C#语言提供了强大的能力来处理运行时的动态操作,其中包括动态加载DLL。这是一项关键技能,尤其当需要在不重新编译应用程序的情况下添加或更新功能时。本篇文章将深入探讨如何在C#中实现动态加载DLL...
而在C#中,虽然可以通过`Assembly.LoadFile`方法来动态加载DLL,但是在卸载DLL方面却没有直接对应的方法,这是因为C#采用了垃圾回收机制。 #### 二、C#中的DLL加载与卸载 ##### 2.1 动态加载DLL 在C#中,可以使用`...
动态加载DLL主要通过`Assembly`类实现。`Assembly.LoadFrom`方法是关键,它接受DLL文件的路径作为参数,然后在运行时加载该DLL。例如: ```csharp Assembly dllAssembly = Assembly.LoadFrom("Path_to_DLL.dll"); `...
4. **查找类型和成员**:一旦DLL加载,我们可以使用`Assembly.GetTypes`获取所有类型,或者通过`Type.GetType`按名称查找特定类型。同样,我们可以使用`Type.GetMethods`、`Type.GetProperties`等方法来获取类型的...
C#中,我们可以通过`Assembly`类和`Reflection`机制来实现动态加载DLL。`Assembly.Load`方法用于加载指定路径的DLL文件,然后通过反射获取并实例化DLL中的类型和方法。 3. **反射机制**: 反射是.NET框架的一个...
本文将深入探讨如何通过接口方式动态加载DLL,以此来理解C#反射的应用。 首先,我们要知道什么是接口。在C#中,接口(Interface)是一种定义行为规范的类型,它不包含任何实现,只包含方法、属性、索引器和事件的...
在C#中,我们主要通过以下方法进行DLL动态加载: 1. **System.Reflection.Assembly** 类:这是C#中用于处理程序集(包括DLL)的核心类。通过`Assembly.Load`方法,我们可以加载指定路径的DLL文件。例如: ```...
在.NET框架下,C#可以使用`System.Reflection`命名空间的类,如`Assembly`和`Type`,来动态加载和调用DLL中的方法。这种方法允许程序在运行时决定要执行哪个特定的DLL功能,增强了代码的灵活性。 1. **加载DLL**:...
在.NET框架中,C#语言提供了强大的类型安全和编译时检查,但有时我们需要在运行时动态地加载和调用DLL中的函数,这种情况通常涉及到“反射”这一核心特性。本篇将深入探讨如何使用C#进行动态DLL调用以及如何向目标...
本主题探讨的是如何在C++程序中动态加载并使用由C#编写的DLL(动态链接库)代码。这涉及到.NET Framework和C++之间的互操作性,也称为CLI(Common Language Infrastructure)或P/Invoke(Platform Invoke)。 C#...
DLL动态加载是指程序在运行时通过API调用来加载和卸载DLL,而不是在编译时将其链接到可执行文件中。这样可以减少程序的大小,提高资源利用率,并允许不同应用程序共享同一DLL。 2. **C#中的DllImportAttribute** ...
在C#中,我们通常使用`DllImport`特性来静态加载DLL,但有时我们可能需要在运行时动态地加载和调用DLL中的方法,这时就需要使用到`Assembly`类和`Type`类。 动态加载DLL的基本步骤如下: 1. 加载DLL:通过`...