WEB开发网
开发学院WEB开发ASP.NET LINQ to Reflection反射机制 阅读

LINQ to Reflection反射机制

 2010-12-02 07:06:56 来源:WEB开发网   
核心提示:我们平时开发中不可避免,或者说,LINQ to Reflection反射机制,经常性的使用反射,但是却没有一个合适的类库帮助我们更好的利用反射,此信息会被进行缓存,并且使用fastreflectionlib的核心Lambda代码,从早期的FastInvoker,到老赵的 fastreflectionlib

我们平时开发中不可避免,或者说,经常性的使用反射。但是却没有一个合适的类库帮助我们更好的利用反射。从早期的FastInvoker,到老赵的 fastreflectionlib ,无一不是在强调Fast。这是因为反射的性能损耗比较厉害,所以大家都集中精力解决性能的问题,但是在易用性方面却鲜有改进。今天我为大家带来一个即兼顾性能又具有良好的使用体验的反射类库.

.Metadata()

此类库以LINQ TO Object为基础,可以通过调用.Metadata()方法获取对应Type的完整Metadata信息。此信息会被进行缓存,并且使用fastreflectionlib的核心Lambda代码,利用DynamicMethod代替直接的反射执行。

  1. public static Metadata Metadata(this object instance)      
  2.  {        
  3.  return MetadataCache.Create(instance);    
  4.   }   

先定义一个MockObject

  1. class MockAttribute : Attribute     
  2.  {        
  3. public MockAttribute(string name)      {          
  4.  this.Name = name;      
  5.    }      
  6.   public string Name     
  7.    {        get;set;      
  8.   }    }     
  9.   class MockObject     
  10.   {      
  11.   public string Country = "China";           
  12.     [Mock("this is the name")]    
  13.     public string Name    
  14.     {        get;set;      }      
  15.    public string Blog     
  16.    {        get;set;    
  17.      }       
  18.  [Mock("this is the location")]     
  19.    public string Location    
  20.      {        get;set;      }       
  21.  public string SayHello(string name)      {        
  22.   return "Hi," + name;     
  23.    }    }  } 

1 2 3 4 5 6  下一页

Tags:LINQ to Reflection

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接