如何将null值传递给简单注入器中的构造函数?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将null值传递给简单注入器中的构造函数?相关的知识,希望对你有一定的参考价值。
我有一个服务层,两个应用程序使用Web应用程序和窗口服务。我正在使用简单的注射器进行两种应用。
窗口服务不需要Web应用程序中所需的所有构造函数参数。所以我需要为这些构造函数参数传递null值。但是Simple Injector不允许我传递空值。
我正在为这样的空值注册类型
container.Register<IDataProtectionProvider>(() => null);
但它给了我错误
IDataProtectionProvider类型的已注册委托返回null。
任何帮助
答案
Simple Injector不允许将null值传递给构造函数,因为构造函数用于所需的依赖项。
你应该传入一个Null Object,而不是传入null。
在面向对象的计算机编程中,null对象是没有引用值或具有定义的中性(“null”)行为的对象。空对象设计模式描述了这些对象的使用及其行为(或缺乏行为)。它首次发表在“程序设计模式语言”系列丛书中。
例:
container.RegisterSingleton<IDataProtectionProvider>(new NullDataProtectionProvider());
以上是关于如何将null值传递给简单注入器中的构造函数?的主要内容,如果未能解决你的问题,请参考以下文章
踩坑:Spring静态变量/构造函数注入失败(注入为null)问题的解决方案