• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

软件测试中有关Emit与Reflection性能对比测试

发布: 2009-5-21 10:17 | 作者: 不详 | 来源: 测试时代采编 | 查看: 228次 | 进入软件测试论坛讨论

领测软件测试网

    public static object GetValueEmit(Type type, string propertyName, object instance)
    {
        return EmitTest.GetEmitInvoker(type, propertyName)(instance); }

    //Use the cached dynamic method to  get the property’s value 
    public static object GetValueEmitWithCache(Type type, string propertyName, object instance)
    {
        GetPropertyValueInvoker invoker = null;
        if (!_invokerCache.TryGetValue(propertyName, out invoker))
        {
            invoker = EmitTest.GetEmitInvoker(type, propertyName);
            _invokerCache[propertyName] = invoker;
        }

        return invoker(instance);
    }

    //Use reflection to get the property’s value
    public static object GetValueReflect(Type type, string propertyName, object instance)
    {
        PropertyInfo propInfo = type.GetProperty(propertyName
            , BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
        return propInfo.GetValue(instance, null);
    }
}
测试用的实体类:
public class TestEntity
{
    private string _string1;
    private int _int1;
    private DateTime _datetime1;

    public string String1
    {
        get { return this._string1; }
        set { this._string1 = value; }
    }
    public int Int1
    {
        get { return this._int1; }
        set { this._int1 = value; }
    }
    public DateTime Datetime1
    {
        get { return this._datetime1; } 
        set { this._datetime1 = value; }
    }
}
测试代码:
TestEntity entity1 = new TestEntity();
entity1.String1 = \"a string field\";
entity1.Int1 = 123;
entity1.Datetime1 = DateTime.Now;

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

32/3<123>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网