一个使用例子
//创建业务接口 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(); } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。