NClay提供的PropertyHandler

NClay提供基于Emit封装的PropertyHandler来代替反射操作,这样的操作方式比反射操作有着非常优异执行效率。下能通过测试来看一下其使用方式和性能:

    class Program

    {

        static void Main(string[] args)

        {

            NClay.PerformanceTest test = new NClay.PerformanceTest(Console.Out);

            test.AddPerformance(new PropertyHandlerTest(), new PropertyInfoTest());

            test.AddTestName("NClayHandler", "Reflection");

            test.Execute(1, false);

            test.Execute(10);

            test.Execute(100);

            test.Execute(1000);

            test.Execute(10000);

            test.Execute(100000);

            Console.Read();

        }

    }

 

    public class User

    {

        private string mName;

        public string Name

        {

            get

            {

                return mName;

            }

            set

            {

                mName = value;

            }

        }

    }

 

    public class PropertyHandlerTest:NClay.Performance

    {

      

        static NClay.PropertyHandler mHandler = null;

     

 

        protected override void OnExecute()

        {

            if (mHandler == null)

            {

                PropertyInfo p = typeof(User).GetProperty("Name");

                mHandler = new NClay.PropertyHandler(p);

            }

            User user = new User();

            mHandler.Set(user, "henry");

            object value = mHandler.Get(user);

        }

    }

    public class PropertyInfoTest:NClay.Performance

    {

      

        static PropertyInfo mProperty;

   

 

        protected override void OnExecute()

        {

            if (mProperty == null)

            {

                 mProperty = typeof(User).GetProperty("Name");

 

            }

            User user = new User();

            mProperty.SetValue(user, "henry", null);

            object value = mProperty.GetValue(user, null);

        }

}

 

下载代码

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值