反射机制是调用程序集里的类,属性,变量。。对吧。
可是我用类库也可以添加引用,也可以using 类库,然后直接调用类,属性这些东西
有什么不一样吗?可能我是对反射的概念还是有些子模糊吧,不知道我上面的问题是不是愚蠢,不过还是请帮个忙,解决下

解决方案 »

  1.   

    用invork 可以没添加引用时用.
      

  2.   

    你的程序肯定动态变化的地方很少,没有遇到需要反射的情况
    可是很多时候,比如模块加载,系统启动的时候并不知道到底用那个dll,只要当程序运行过程中,用户进行了操作,
    利用反射加载需要的dll,获得相关的类和方法进行调用。
    如果程序本身没有这些变数存在的话,那就没必要用反射。
      

  3.   

    using System.Reflection;
    using System.Runtime.CompilerServices;
    using System.Runtime.InteropServices;// 有关程序集的常规信息通过下列属性集
    // 控制。更改这些属性值可修改
    // 与程序集关联的信息。
    [assembly: AssemblyTitle("BLL")]
    [assembly: AssemblyDescription("")]
    [assembly: AssemblyConfiguration("")]
    [assembly: AssemblyCompany("微软中国")]
    [assembly: AssemblyProduct("BLL")]
    [assembly: AssemblyCopyright("版权所有 (C) 微软中国 2008")]
    [assembly: AssemblyTrade("")]
    [assembly: AssemblyCulture("")]// 将 ComVisible 设置为 false 使此程序集中的类型
    // 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型,
    // 则将该类型上的 ComVisible 属性设置为 true。
    [assembly: ComVisible(false)]// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
    [assembly: Guid("95bb2fc0-e199-41e6-a22a-662140048c7a")]// 程序集的版本信息由下面四个值组成:
    //
    //      主版本
    //      次版本 
    //      内部版本号
    //      修订号
    //
    // 可以指定所有这些值,也可以使用“修订号”和“内部版本号”的默认值,
    // 方法是按如下所示使用“*”:
    [assembly: AssemblyVersion("1.0.0.0")]
    [assembly: AssemblyFileVersion("1.0.0.0")]
    这个是反射吗???这是我创建个类库自动产生的一个AssemblyInfo.cs文件,这是反射?也就是说反射不需要我们去写,自动产生的吗?
      

  4.   

    晕..
    AssemblyInfo.cs这个东西你从名字上看也应该知道他是个程序集信息文件,他包含你的程序集信息.
    如果你真的想把反射搞明白了,你最好是找些书或是文章把反射的内容好好看一下.
      

  5.   

    反射的一个重要作用之一是帮你或得一个Assembly的信息,比如它的member, attribute, methods。有时一个未知的assembly,你用反射能很轻松知道它的结构。
      

  6.   

    我觉得Attribute是反射的一个重要使用方法。