- 浏览: 61713 次
- 性别:
- 来自: 上海
最新评论
-
feipigzi:
我觉得文章内容不如改成四个字——“顾名思义”
FRAMESET和IFRAME各自的优点和缺点 -
yuchujin:
这个也太短了吧
FRAMESET和IFRAME各自的优点和缺点
注:
1、ReturnMessage 是我自写的一个类,作用请查看我的其他文章,我也把这个类一并附在后面
2、通过NameSpaceAndClassName和MethodName实际上就可以精确定位一个方法了如调用abc.dll里的namespace1.Class1.Main,调用起来就是CallAssembly("abc.dll","namespace1.Class1","Main",null)
public static ReturnMessage CallAssembly(string Path,string NameSpaceAndClassName,string MethodName,object[] Parameters)
{
try
{
Assembly Ass=Assembly.LoadFrom(Path);//调入文件(不限于dll,exe亦可,只要是.net)
Type TP=Ass.GetType(NameSpaceAndClassName);//NameSpaceAndClassName是"名字空间.类名",如"namespace1.Class1"
MethodInfo MI=TP.GetMethod(MethodName);//MethodName是要调用的方法名,如"Main"
object MeObj=System.Activator.CreateInstance(TP);
MI.Invoke(MeObj,Parameters);//Parameters是调用目标方法时传入的参数列表
return new ReturnMessage(true,"成功调用",1);
}
catch(Exception e)
{
return new ReturnMessage(false,"出现异常,消息为:"+e.Message,-1,e);
}
}
{
try
{
Assembly Ass=Assembly.LoadFrom(Path);//调入文件(不限于dll,exe亦可,只要是.net)
Type TP=Ass.GetType(NameSpaceAndClassName);//NameSpaceAndClassName是"名字空间.类名",如"namespace1.Class1"
MethodInfo MI=TP.GetMethod(MethodName);//MethodName是要调用的方法名,如"Main"
object MeObj=System.Activator.CreateInstance(TP);
MI.Invoke(MeObj,Parameters);//Parameters是调用目标方法时传入的参数列表
return new ReturnMessage(true,"成功调用",1);
}
catch(Exception e)
{
return new ReturnMessage(false,"出现异常,消息为:"+e.Message,-1,e);
}
}
附ReturnMessage
public class ReturnMessage
{
public ReturnMessage()
{
this.m_Succeed=false;
this.m_Message="";
this.m_Code=-1000;
this.m_Data=null;
}
public ReturnMessage(bool IsSucceed)
{
this.m_Succeed=IsSucceed;
}
public ReturnMessage(bool IsSucceed,string Message)
{
this.m_Succeed=IsSucceed;
this.m_Message=Message;
}
public ReturnMessage(bool IsSucceed,string Message,int Code)
{
this.m_Succeed=IsSucceed;
this.m_Message=Message;
this.m_Code=Code;
}
public ReturnMessage(bool IsSucceed,string Message,int Code,object Data)
{
this.m_Succeed=IsSucceed;
this.m_Message=Message;
this.m_Code=Code;
this.m_Data=Data;
}
public ReturnMessage(bool IsSucceed,string Message,int Code,object Data,object[] Datas)
{
this.m_Succeed=IsSucceed;
this.m_Message=Message;
this.m_Code=Code;
this.m_Data=Data;
this.m_Datas=Datas;
}
//
bool m_Succeed;
string m_Message;
int m_Code;
object m_Data;
object[] m_Datas;
public bool Succeed
{
get{return m_Succeed;}
set{m_Succeed=value;}
}
public string Message
{
get{return m_Message;}
set{m_Message=value;}
}
public int Code
{
get{return m_Code;}
set{m_Code=value;}
}
public object Data
{
get{return m_Data;}
set{m_Data=value;}
}
public object[] Datas
{
get{return m_Datas;}
set{m_Datas=value;}
}
}
{
public ReturnMessage()
{
this.m_Succeed=false;
this.m_Message="";
this.m_Code=-1000;
this.m_Data=null;
}
public ReturnMessage(bool IsSucceed)
{
this.m_Succeed=IsSucceed;
}
public ReturnMessage(bool IsSucceed,string Message)
{
this.m_Succeed=IsSucceed;
this.m_Message=Message;
}
public ReturnMessage(bool IsSucceed,string Message,int Code)
{
this.m_Succeed=IsSucceed;
this.m_Message=Message;
this.m_Code=Code;
}
public ReturnMessage(bool IsSucceed,string Message,int Code,object Data)
{
this.m_Succeed=IsSucceed;
this.m_Message=Message;
this.m_Code=Code;
this.m_Data=Data;
}
public ReturnMessage(bool IsSucceed,string Message,int Code,object Data,object[] Datas)
{
this.m_Succeed=IsSucceed;
this.m_Message=Message;
this.m_Code=Code;
this.m_Data=Data;
this.m_Datas=Datas;
}
//
bool m_Succeed;
string m_Message;
int m_Code;
object m_Data;
object[] m_Datas;
public bool Succeed
{
get{return m_Succeed;}
set{m_Succeed=value;}
}
public string Message
{
get{return m_Message;}
set{m_Message=value;}
}
public int Code
{
get{return m_Code;}
set{m_Code=value;}
}
public object Data
{
get{return m_Data;}
set{m_Data=value;}
}
public object[] Datas
{
get{return m_Datas;}
set{m_Datas=value;}
}
}
发表评论
-
全面剖析C#正则表达式
2006-06-07 16:52 1810全面剖析C#正则表达式 ... -
水晶报表注册码(收藏)
2006-06-07 16:56 2069水晶报表注册码(收藏) <script language ... -
C#中直接调用VB.NET的函数,兼论半角与全角、简繁体中文互相转化
2006-06-15 11:25 1019在C#项目中添加引用Microsoft.VisualBasic ... -
用C#生成随机中文汉字验证码的基本原理
2006-06-21 13:54 8051、汉字编码原理 到底怎么办到随机生成汉字的呢?汉字从哪里来的 ... -
.NET框架和VS.NET中的SOAP
2006-06-21 13:56 673简介<o:p></o:p> <o ... -
.NET框架中基于角色的安全性
2006-06-21 13:57 634概述<o:p></o:p> < ... -
DotNET(C#) Socket基本编程
2006-06-21 13:59 1082Socket基本编程 服务端: using System.Ne ... -
解读C#中的规则表达式
2006-07-25 13:50 593多少年来,许多的编程 ... -
解读C#中的规则表达式
2006-07-25 13:50 678多少年来,许多的编程 ... -
ASP.NET程序中常用的三十三种代码
2006-08-24 17:12 6741. 打开新的窗口并传送参数: 传送参数:response ... -
打造一个通用ASP.NET数据分页控件
2006-08-24 17:14 1055打 ... -
.net的优点
2008-03-10 13:55 13971.标准集成:XML、SOAP及其它 过去,微软的体系结构建立 ... -
ASP.NET的优点与缺点
2008-03-10 13:57 3569一. ASP.NET的演变:DENALI ASP 的第一个测试 ... -
回头看.Net的优点与进步
2008-03-10 13:58 942最近公司要竞标一个项目,对方指定要.Net,因此又重操旧业, ... -
c#学习笔记(1)
2008-03-10 14:11 7671, 结构(struct) 与 类(class)[attrib ... -
Web Service中保持ASP.net的状态
2008-03-11 12:44 1929简介 网络程序开发 ... -
c#面试题及答案
2008-03-13 16:30 2829c#面试题及答案 2 .列举 ...
相关推荐
.NET框架中的反射机制是开发过程中一个非常重要的工具,它允许程序在运行时动态地获取类型信息并操作类型实例。反射提供了强大的能力,如创建对象、调用方法、访问字段和属性,以及处理委托和事件。以下是对.NET反射...
2. 动态方法调用:通过MethodInfo的Invoke方法,可以在运行时调用任意对象的方法。 3. 访问私有成员:通过适当的BindingFlags,反射允许访问通常不可见的私有成员。 4. 扩展性:反射为插件架构和动态编程提供了基础...
.NET反射机制是.NET框架中的一个强大工具,它允许在运行时检查、操作和动态创建类型。这个框架在处理元数据和动态代码执行方面表现出色,正如标题所提及的,其性能相当OK,即使运行100000次也只需要100多毫秒,这在...
2. 动态调用方法:MethodBase类提供了Invoke方法,可以用于在运行时调用对象的任意方法。 3. 访问字段和属性:FieldInfo和PropertyInfo类分别用于获取和操作类的字段和属性。 4. 查找并执行特定的程序集、类型、接口...
在这个VB.Net的练习中,可能包含了使用反射技术实现的示例,比如动态加载和执行程序集,或者根据运行时环境调整程序行为。这样的实践可以帮助开发者更好地理解和掌握反射的实际应用。 最后,提到的“字体”标签可能...
- **方法调用**:通过`MethodInfo`类可以调用任意类型的方法,无论它们的访问级别如何。 - **属性访问**:使用`PropertyInfo`可以读取和设置属性的值。 - **事件处理**:`EventInfo`可用于添加或移除事件处理程序。 ...
5. 反射:反射允许程序在运行时动态地获取类型信息,并能创建对象、调用方法、访问属性。这对于实现元编程和动态加载组件非常有用。 6. LINQ(Language Integrated Query):LINQ是VB.NET中的一种强大的查询语言,...
题目询问如何使用反射来确定一个方法是否可以在派生类中访问。正确答案是选项D,即访问`MethodInfo`的`IsFamily`属性。`IsFamily`属性返回一个布尔值,表示该方法是否具有`protected`访问修饰符,这意味着派生类可以...
使用`Expression`类,你可以构建表示反射调用的表达式树。例如,`Expression.Call(null, typeof(YourType).GetMethod("YourMethod"))`将创建一个表示调用静态方法`YourMethod`的表达式。 3. 构建LINQ查询:接下来,...
本文探讨了在VC++.NET环境下使用OpenGL进行三维物体建模的方法。OpenGL是一种跨平台的API,广泛应用于计算机图形学领域,特别适用于创建高质量的三维图形。通过结合VC++.NET的强大功能,研究人员可以有效地构建复杂...
调用WebService在.NET中可以通过以下几种方法: - **使用WSDL.exe命令行工具**:此工具可以生成用于调用Web服务的代理类。 - **使用Visual Studio中的Add Web Reference菜单选项**:这是一种图形化方式,通过添加...
反射允许我们动态地创建对象、调用方法、访问属性和字段,甚至发现并执行类型所包含的任意成员。本文将详细解释反射的工作原理,并通过一个具体的示例来展示其在实际编程中的应用。 反射的核心在于`System....
在某些情况下,可能需要在一个独立的线程中通过反射调用某个方法。例如,可以通过反射动态创建并启动一个新的线程来执行某个方法。 **3.3 示例代码** ```csharp using System; using System.Threading; using ...
这种方法允许我们传递参数,实现对动态加载的类的任意方法调用。 注意以下几点关键知识点: 1. `MarshalByRefObject`:为了让对象能在不同的`AppDomain`间通信,必须继承此类。它表示对象的所有操作都在创建它的`...
在编程领域,C#是一种广泛使用的面向对象的编程...在实践中,虽然反射能解决很多难题,但应谨慎使用,因为过度使用反射可能会影响性能,增加代码复杂性,且不易于维护。在设计系统时,需要权衡其带来的便利和潜在问题。
在IT行业中,反射是一种强大的编程概念,它允许运行时的程序获取关于自身类型的信息,并能够动态地调用方法、创建对象、改变字段值等。在.NET框架中,C#、VB.NET以及Delphi(通过其.NET版本)都支持反射机制。本篇...
- C# 中不直接使用 `finalize` 方法,而是通过析构函数调用基类的 `Finalize()` 方法来协助垃圾回收机制。 #### 8. Error 与 Exception 的区别 - **Error**:表示严重错误,通常难以恢复。 - **Exception**:表示...
在.NET框架中,反射是一种强大的机制,它允许程序在运行时动态地访问、检测和修改程序集中的类型(包括类、结构、委托、接口和枚举等)。通过反射,可以获取到对象的类型信息,包括其成员(方法、属性、事件)的名称...
在.NET框架中,反射是一种强大的工具,它允许程序在运行时检查自身并执行与类型相关的操作。自定义特性则是提供了一种元数据的方式,让开发者能够向代码添加额外的信息,这些信息可以在运行时通过反射机制获取。下面...