System.Reflection 反射技术实例.
2007-05-07 18:39
351 查看
项目结构:
ReflectionExample.csproj
-HelloWorld.cs
-Program.cs
源代码:
HelloWorld.cs
using System;
using System.Collections.Generic;
using System.Text;
namespace ReflectionExample
{
class HelloWorld
{
string myName = null;
public HelloWorld(string name)
{
myName = name;
}
public HelloWorld()
: this(null)
{
}
public string Name
{
get { return myName; }
}
public void SayHello()
{
if (myName == null)
System.Console.WriteLine("Hello World");
else
System.Console.WriteLine("Hello," + myName);
}
}
}
Program.cs
using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
namespace ReflectionExample
{
class Program
{
static void Main(string[] args)
{
BindingFlags flags = (BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance | BindingFlags.DeclaredOnly);
System.Console.WriteLine("列出程序集中的所有类型");
Assembly a = Assembly.LoadFrom("ReflectionExample.exe");
Type[] mytypes = a.GetTypes();
foreach (Type t in mytypes)
{
System.Console.WriteLine(t.Name);
}
System.Console.ReadLine();
System.Console.WriteLine("列出HelloWorld类中的所有方法");
Type ht = typeof(HelloWorld);
MethodInfo[] mif = ht.GetMethods(flags);
foreach (MethodInfo mf in mif)
{
System.Console.WriteLine(mf.Name);
}
System.Console.ReadLine();
System.Console.WriteLine("实例化HelloWorld,并调用SayHello方法");
Object obj = Activator.CreateInstance(ht);
String[] s ={ "ZhenLei" };
Object objName = Activator.CreateInstance(ht, s);
MethodInfo msayhello = ht.GetMethod("SayHello",flags);
msayhello.Invoke(obj, null);
msayhello.Invoke(objName,null);
System.Console.ReadLine();
}
}
}
ReflectionExample.csproj
-HelloWorld.cs
-Program.cs
源代码:
HelloWorld.cs
using System;
using System.Collections.Generic;
using System.Text;
namespace ReflectionExample
{
class HelloWorld
{
string myName = null;
public HelloWorld(string name)
{
myName = name;
}
public HelloWorld()
: this(null)
{
}
public string Name
{
get { return myName; }
}
public void SayHello()
{
if (myName == null)
System.Console.WriteLine("Hello World");
else
System.Console.WriteLine("Hello," + myName);
}
}
}
Program.cs
using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
namespace ReflectionExample
{
class Program
{
static void Main(string[] args)
{
BindingFlags flags = (BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance | BindingFlags.DeclaredOnly);
System.Console.WriteLine("列出程序集中的所有类型");
Assembly a = Assembly.LoadFrom("ReflectionExample.exe");
Type[] mytypes = a.GetTypes();
foreach (Type t in mytypes)
{
System.Console.WriteLine(t.Name);
}
System.Console.ReadLine();
System.Console.WriteLine("列出HelloWorld类中的所有方法");
Type ht = typeof(HelloWorld);
MethodInfo[] mif = ht.GetMethods(flags);
foreach (MethodInfo mf in mif)
{
System.Console.WriteLine(mf.Name);
}
System.Console.ReadLine();
System.Console.WriteLine("实例化HelloWorld,并调用SayHello方法");
Object obj = Activator.CreateInstance(ht);
String[] s ={ "ZhenLei" };
Object objName = Activator.CreateInstance(ht, s);
MethodInfo msayhello = ht.GetMethod("SayHello",flags);
msayhello.Invoke(obj, null);
msayhello.Invoke(objName,null);
System.Console.ReadLine();
}
}
}
相关文章推荐
- Java反射经典实例 Java Reflection Cookbook
- Java反射经典实例 Java Reflection Cookbook (转)
- 通过反射技术获取泛型真实实例
- 反射中"System.Reflection.Missing.Value"是怎么获值的?
- System.Reflection 使用实例
- 公共技术点之 Java 反射 Reflection
- C# 反射:System.Reflection
- PHP 反射(Reflection)使用实例
- 【转】Java反射经典实例 Java Reflection Cookbook
- Java反射经典实例 Java Reflection Cookbook
- android中反射技术使用实例
- C# 关于反射类[System.Reflection] 根据类名 动态调用 类方法
- Java反射经典实例 Java Reflection Cookbook
- Java反射经典实例 Java Reflection Cookbook
- Java反射经典实例 Java Reflection Cookbook (初级)
- 公共技术点之 Java 反射 Reflection
- 利用反射技术动态获取任意Java类实例的属性值
- Java反射经典实例 Java Reflection Cookbook
- 公共技术点之 Java 反射 Reflection
- 实现poi方式生成excel文件和web类根据路径生成java实例的反射技术的springmvc方法的方法