繁体   English   中英

如何在简单注入器中将空值传递给构造函数?

[英]how to pass null value in to constructor in simple injector?

我有一个服务层,供Web应用程序和窗口服务这两个应用程序使用。 我正在为这两种应用程序使用简单的注射器。

窗口服务不需要Web应用程序中需要的所有构造函数参数,因此我需要为这些构造函数参数传递null值,但是Simple Injector不允许我传递null值。

我正在为这样的空值注册类型

container.Register<IDataProtectionProvider>(() => null);

但这给我错误

IDataProtectionProvider类型的已注册委托返回null。

任何帮助

Simple Injector不允许将null值传递给构造函数,因为构造函数用于必需的依赖项。

除了传递null之外,您应该传递Null对象

在面向对象的计算机编程中,空对象是没有引用值或具有定义的中性(“空”)行为的对象。 空对象设计模式描述了此类对象的用途及其行为(或缺少行为)。 它最初在程序设计的模式语言丛书中出版。

例:

container.RegisterSingleton<IDataProtectionProvider>(new NullDataProtectionProvider());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM