c# – 使用IoC容器时,如何将动态数据/对象传递给类?
发布时间:2020-12-16 01:47:47 所属栏目:百科 来源:网络整理
导读:我有一个带有以下构造函数的Order类 public Order(IProduct product,short count){this._product = product;this._count = count;} 我正在尝试设置Unity IoC容器,显然要构建我需要知道计数和产品的订单对象,但这些是在运行时确定的;计数可以是任何值,产品可
我有一个带有以下构造函数的Order类
public Order(IProduct product,short count) { this._product = product; this._count = count; } 我正在尝试设置Unity IoC容器,显然要构建我需要知道计数和产品的订单对象,但这些是在运行时确定的;计数可以是任何值,产品可以是任何产品,例如胡萝卜,甜瓜等 那么如何应用IoC呢? 我认为一种方法是我的构造函数只接受对象依赖,然后使用新的Initialize()方法添加任何其他必需的属性: public Order (IProduct product) { this._product = product; } public Initialize(short count) { this._count = count; } 以这种方式创建Order对象的人必须在之后调用Initialize()方法,以便将IoC容器无法处理的其他属性添加到其中. 这是你推荐/使用的方法吗? 解决方法
对我来说,这似乎不适合IoC容器.根据用户的行为,推测订单可以在应用程序的整个生命周期中定期使用不同的产品(和计数)进行实例化,这表明需要为可能创建订单的每个上下文配置容器 – 也就是说,每个产品页面.
IoC容器在您很少和早期就可以在应用程序启动时做出有关依赖关系的决策时效果最佳.如果决定注入哪个依赖项总是在创建依赖对象的同时进行,那么IoC容器只会增加不必要的复杂性. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |