经典的IoC/DI容器--StructureMap
导读:收集整理的这篇文章主要介绍了经典的IoC/DI容器--StructureMap,觉得挺不错的,现在分享给大家,也给大家做个参考。StructureMap是一款很老的IoC/DI容器,从2004年.NET 1.1支持至今。一个使用例子...
收集整理的这篇文章主要介绍了经典的IoC/DI容器--StructureMap,觉得挺不错的,现在分享给大家,也给大家做个参考。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.AddRegistrymodelRegistry> ()); } } public class ModelRegistry : Registry { public ModelRegistry() { ForIPaymentGateway> ().UsePaymentGateway> (); ForIPaymentMerchant> ().UseStreaMLinePaymentMerchant> (); ForIDispatchService> ().UseDispacthService> (); ForICourier> ().UseFedExCourier> (); } } class Program { static void Main(string[] args) { BootStrapper.ConfigureStructureMap(); //启用配置 OrderService orderService = ObjectFactory.GetInstanceOrderService> (); Console.WriteLine(orderService.ToString()); IPaymentGateway paymentGateway= ObjectFactory.GetInstancePaymentGateway> (); Console.WriteLine(paymentGateway); Console.ReadKey(); } }
以上就是经典的IoC/DI容器--structureMap的详细内容,更多请关注其它相关文章!
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 经典的IoC/DI容器--StructureMap
本文地址: https://pptw.com/jishu/592187.html