我有一个服务层,两个应用程序使用Web应用程序和窗口服务。我正在为这两种应用使用简单的注射器。
窗口服务不需要Web应用程序中所需的所有构造函数参数。所以我需要为这些构造函数参数传递null值。但是Simple Injector不允许我传递空值。
我正在注册类似
的空值类型container.Register<IDataProtectionProvider>(() => null);
但它给了我错误
IDataProtectionProvider类型的已注册委托返回null。
任何帮助
答案 0 :(得分:0)
Simple Injector不允许将null值传递给构造函数,因为构造函数用于必需的依赖项。
您应该传入Null Object:
,而不是传入null在面向对象的计算机编程中,null对象是没有引用值或具有已定义的中性(“null”)行为的对象。空对象设计模式描述了这些对象的使用及其行为(或缺乏行为)。它首次发表在“程序设计模式语言”系列丛书中。
示例:
container.RegisterSingleton<IDataProtectionProvider>(new NullDataProtectionProvider());