خیلی از مواقع ما نیاز داریم از Reflection استفاده کنیم اما Reflection به خودی خود نسبت به حالی عادی خیلی کندتر هست و نیاز به نوشتن کدهای بیشتری دارد.
برای سرعت بیشتر و استفاده راحتتر از Reflection میتونین از کتابخانه FastMember استفاده کنین. (بین تستهای که شخصا داشتم تو سناریوهای مختلف، FastMember بین 6 تا 96 برابر سریعتر از Reflection معمولی سریعتر بود.)
مثلا برای دسترسی به propertyهای یک object در runtime با کمک FastMember، خواهیم داشت:
var accessor = ObjectAccessor.Create(obj); var propName = "MyProperty" var value = accessor[propName];
نکته :
این کتابخانه کدها IL برنامه رو در runtime تغییر میده، در نتیجه در محیطهای AOT (مخفف Ahead of Time) مانند Xamarin iOS کار نخواهد کرد.
در مقاله زیر که مقاله جالبی هست توضیح میده، رفلکشن چطور کار میکنه و چرا کند هست
سپس به روشهای افزایش پرفرمنس رفلکشن اشاره میکنه و در آخر بنچمارکی از نتیجه اونها رو نشون میده