【发布时间】:2010-10-06 20:41:01
【问题描述】:
一个类有一个以 IMyInterface 作为参数的唯一构造函数。如果我定义 IMyInterface 的具体类型并将其注册到 StructureMap 则没有问题,我的类可以用这种具体类型实例化。
但是,在某些情况下,不会注册具体类型。在这种情况下,我想为 IMyInterface 参数接收 null。相反,我得到了一个例外:
结构图异常代码:202 没有为 PluginFamily IMyInterface 定义默认实例。
是否可以为缺少的插件定义默认值?
上下文:我的类是一个服务,使用 Spark 视图引擎并定义了一些默认命名空间。该服务使用 ISparkNamespacesProvider (IMyInterface) 添加其他命名空间。客户端应用程序可以注册或不注册这样的提供程序。这就是为什么服务的构造函数要么接收提供者,要么不接收提供者。
【问题讨论】:
标签: dependency-injection constructor inversion-of-control structuremap