经典的IoC/DI容器--StructureMap

互联网 17-6-23
StructureMap是一款很老的IoC/DI容器,从2004年.NET 1.1支持至今。

一个使用例子

    //创建业务接口      public interface IDispatchService { }      public interface ICourier { }      public interface IPaymentGateway { }      public interface IPaymentMerchant { }        //接口的实现      public class DispacthService : IDispatchService      {          private ICourier _courier;          public DispacthService(ICourier courier)          {              _courier = courier;          }          public override string ToString()          {              return _courier.ToString();          }      }      public class FedExCourier : ICourier { }      public class StreamLinePaymentMerchant : IPaymentMerchant { }      public class PaymentGateway : IPaymentGateway      {          private IPaymentMerchant _paymentMerchant;          public PaymentGateway(IPaymentMerchant paymentMerchant)          {              _paymentMerchant = paymentMerchant;          }          public override string ToString()          {              return _paymentMerchant.ToString();          }      }        //业务使用      public class OrderService      {          private IPaymentGateway _paymentGateway;          private IDispatchService _dispacthService;            public OrderService(IPaymentGateway paymentGateway, IDispatchService dispacthService)          {              _paymentGateway = paymentGateway;              _dispacthService = dispacthService;          }          public override string ToString()          {              return string.Format("IPaymentGateway:{0}  IDispatchService:{1}", _paymentGateway.ToString(), _dispacthService.ToString());          }      }        //配置依赖关系      public class BootStrapper      {          public static void ConfigureStructureMap()          {              ObjectFactory.Initialize(x => x.AddRegistry<ModelRegistry>());          }      }        public class ModelRegistry : Registry      {          public ModelRegistry()          {              For<IPaymentGateway>().Use<PaymentGateway>();              For<IPaymentMerchant>().Use<StreamLinePaymentMerchant>();              For<IDispatchService>().Use<DispacthService>();              For<ICourier>().Use<FedExCourier>();          }      }        class Program      {          static void Main(string[] args)          {              BootStrapper.ConfigureStructureMap();//启用配置                  OrderService orderService = ObjectFactory.GetInstance<OrderService>();              Console.WriteLine(orderService.ToString());                IPaymentGateway paymentGateway= ObjectFactory.GetInstance<PaymentGateway>();              Console.WriteLine(paymentGateway);                Console.ReadKey();          }      }

以上就是经典的IoC/DI容器--StructureMap的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: 经典
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:Redis 封装库的实例介绍

相关资讯