ioriliao 的博客

无极生太极, 太极生两仪, 两仪生四象, 四象生八卦, 八卦定吉凶, 吉凶定大业.

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  146 随笔 :: 0 文章 :: 398 评论 :: 0 引用
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;
//和大家分享一下自己在工作中用到反射技术的一些简单应用
//此案例应用场景是这个样子的:
//在我的项目中有很多的DLL, 每个DLL都有一个Mark属性,是用
//来标识这个DLL作用的中文名称来的,因为我要知道这个DLL是作
//什么用的,那么就只有取得其Mark属性.
//此紧紧作为一个示例..
//备注:我用到了c#2008的新特性,关键字var,若不明白,请msdn.
namespace ReflectionTest
{
    
class Program
    
{
        
static void Main(string[] args)
        
{
            Console.WriteLine(
"请输入DLL文件的路径");
            var pathFile 
= Console.ReadLine();
            
//载入程序集
            var myAssembly = Assembly.LoadFrom(@pathFile);
            
//取得程序集myAssembly的所有类型
            var types = myAssembly.GetTypes();
            
            
//遍历类型,以获得类开的属性
            foreach (var type in types)
            
{
                
//获得类型属性集
                var props = type.GetProperties();
                
//实例化此类型
                var typeFlection = System.Activator.CreateInstance(type);

                
foreach (var prop in props)
                
{
                    
//属性名称是否是"Mark"
                    if (prop.Name == "Mark")
                    
{
                        
//取得属性值
                        var obj = prop.GetValue(typeFlection, null);
                        var MarkValue 
= obj;
                        Console.WriteLine(
"Mark的值为:{0}", MarkValue);
                    }

                }

            }

            Console.ReadLine();
        }

    }

}



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace cls1
{
    
public class Class1
    
{
        
private string m1;
        
public Class1()
        
{
            m1 
= "cls1.Class1";
        }

        
public string Mark
        
{
            
get return m1; }
        }

    }



    
public class Class2
    
{
        
private string m1;
        
public Class2()
        
{
            m1 
= "cls1.Class2";
        }

        
public string Mark
        
{
            
get return m1; }
        }

    }


    
public class Class3
    
{
        
private string m1;
        
public Class3()
        
{
            m1 
= "cls1.Class3";
        }

        
public string Mark
        
{
            
get return m1; }
        }

    }

}


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace cls2
{
    
public class Class1
    
{
        
private string m1;
        
public Class1()
        
{
            m1 
= "cls2.Class1";
        }

        
public string Mark
        
{
            
get return m1; }
        }

    }



    
public class Class2
    
{
        
private string m1;
        
public Class2()
        
{
            m1 
= "cls2.Class2";
        }

        
public string Mark
        
{
            
get return m1; }
        }

    }


    
public class Class3
    
{
        
private string m1;
        
public Class3()
        
{
            m1 
= "cls2.Class3";
        }

        
public string Mark
        
{
            
get return m1; }
        }

    }

}


  点击这里给我发消息
posted on 2008-07-04 14:18 太极 阅读(258) 评论(0)  编辑 收藏 所属分类: C#

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      


相关链接: