创建对象(autoFac)

首先需要在项目中安装autofac IOC框架

using Autofac;
using Xunit;

namespace createObject.Test
{
    public class createObject
    {
        //define  a interface
        interface ISpeek { }
  
        //a class to realize  interface of ISpeek
        public class Duck : ISpeek { }

        interface ICalulator
        {
            int Add(int left, int right);
        }

         
        class AddNum : ICalulator
        {
            public int Add(int left, int right)
            {
                return left + right;
            }
        }

        class Calculator
        { 
             // dependency  injection  of AddNum class
            readonly ICalulator cal;

            public Calculator(ICalulator cal)
            {
                this.cal = cal;
            }

            public int Add(int left, int right)
            {
                return cal.Add(left, right);
            }
        }

        [Fact]
        public void should_create_duck_object()
        {
            var builder = new ContainerBuilder();
            builder.Register(_ => new Duck()).As<ISpeek>();

            IContainer build = builder.Build();
            var duck = build.Resolve<ISpeek>();
            Assert.Equal(typeof(Duck), duck.GetType());
        }

        [Fact]
        public void should_create_calculate_object()
        {
            //tells to how to create  object
            var builder = new ContainerBuilder();
            builder.Register(_ => new AddNum()).As<ICalulator>();
            builder.Register(c => new Calculator(c.Resolve<ICalulator>()));
             // create build container 
            IContainer build = builder.Build();
 
            //  create Duck using Resolve 
            var calculate = build.Resolve<Calculator>();

            Assert.Equal(5, calculate.Add(2, 3));
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,552评论 25 708
  • 1 场景问题# 1.1 导出数据的应用框架## 考虑这样一个实际应用:实现一个导出数据的应用框架,来让客户选择数据...
    七寸知架构阅读 6,840评论 6 75
  • 陕西榆林的一名产妇,在生孩子的过程中跳楼自杀了。在看到这条新闻刷屏时,我脑海里浮现的是1月6日湘潭一母子抱...
    桥妹阅读 316评论 0 0
  • 假期的大清早,被爸妈拉起来爬山。 城市里新起的小景点,徒步上山其中一条线需经过一大片城中村。那里大多是这城市打工者...
    回聲echo阅读 244评论 0 0
  • 飞云哥说:“华仔,十多年没见你啦,胖了啊”。我说:“哥,你认得出我,那我变化不大啊?” 关于我的变化,我没做自我觉...
    白千寻阅读 213评论 0 1