首页 > 其他 > 详细

利用Impromptu实现duck typing的封装

时间:2014-01-16 00:04:28      阅读:332      评论:0      收藏:0      [点我收藏+]

Impromptu是一个动态生成代码实现接口的库,可以非常方便我们实现DuckType编程:

    public interface IUser
    {
        string Name { get; set; }
        int Age { get; set; }
        string Address { get; set; }
    }


    var obj = new { Name = "jone", Age = 28 };
    IUser user = Impromptu.ActLike<IUser>(obj);

    Console.WriteLine(user.Name);

其原理是内部用Emit来动态生成了一个实现该接口的对象,从而实现接口的封装。利用这个特性,我们可以把Impromptu和ExpandoObject结合使用,从而非常方便的动态实现接口。

    var user = Impromptu.ActLike<IUser>(new ExpandoObject());
    user.Name = "jone";
    Console.WriteLine(user.Name);

利用Impromptu实现duck typing的封装

原文:http://www.cnblogs.com/TianFang/p/3516535.html

(0)
(0)
   
举报
评论 一句话评论(0
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!