既然进来了,先给各位技术能人们拜个早年哈!!!
在下许下心愿:来年发技术贴不用这么拮据!用NET Reflector反编了其中的一些类库,想了解某些方法的内部实现,比如Environment的TickCount属性的实现:
 public static int TickCount
        {
            get
            {
                return nativeGetTickCount();
            }
        }然后找到nativeGetTickCount实现:
   [MethodImpl(MethodImplOptions.InternalCall)]
        private static extern int nativeGetTickCount();
发现它应用了MethodImpl的Attribute而且这个Attribute的MethodImplOptions竟然指定的是 InternalCall(内部调用),那么问题来了!
我该如何继续查找该方法的实现,求已经评上大侠或者还没评上大侠的给予回答,谢谢!

解决方案 »

  1.   

    CTRL+f全局查找。或者直接转到定义。test下
      

  2.   

    这个Attribute的应用说明这个方法是内部实现的,无法查找,
    刚从一个大侠那得知,应用该Attribute的函数比P\Invoke快,直接调用底层C/C++实现,不过未公开其实现?
      

  3.   

    这些是mscore的核心,不会公开的
      

  4.   

    TickCount好像是调用API的啦,你可以参考下《Windows核心编程》,喵~~
      

  5.   

    不是说MethodImpl就是未公开的。“未公开”不是这个意思。公开的api设计机制,微软有很多种渠道。例如各种技术类的书籍、博客、api手册、文档等等。只不过它不是.net这类高级的动态编译(虚拟机)支持的方式,reflector不支持而已。你找到源代码可能要多方打听,花上上万块钱(而不是用reflector免费地)去买各种书籍资料,参加各种社区,需要慢慢找源代码。
      

  6.   

    微软的.net虽然大部分是开源的(请自己去查找一下.net开源的信息),但是不是100%开源,特别是懒得给你提供以前的底层源代码时。而如果你用一些小的框架类库,可能它本身就是开源的。哪怕它有几十万行,你也可以直接把源代码弄来跟你的代码放在一起重新编译。而微软的东西要比较复杂,不是这类开源思路。
      

  7.   

    看来大家都这样说,我以前的这种行为真的可笑,还真以为reflector是万能的呢
      

  8.   

    核心和一些效率性能相关的代码,是采用c++编写滴,这一块微软没打算提供出来,实际上也没必要提供。那些都是一些基础算法部分。比如string类中字节对齐,重新分配内存,copy数据。快速排序等等。做为程序员本身其实可以不用管。这些都是基础算法,并没有啥太多秘密。