我有一个非常简单的xUnit项目,在这里演示了我的问题:
https://github.com/Mike-EEE/LightInject.FactoryDependencies
请注意,该测试通过了,因为它演示了LightInject的默认行为。
这是相关测试的完整代码:
[Fact]
public void Test1()
{
var container = new ServiceContainer();
container.RegisterSingleton<Service>();
var instance = container.GetInstance<Service>();
instance.Should().NotBeNull();
instance.Dependency.Target.Should().BeOfType<ServiceContainer>();
}
public sealed class Service
{
public Service(Func<int, DateTime> dependency) => Dependency = dependency;
public Func<int, DateTime> Dependency { get; }
}
默认情况下,LightSwitch似乎自动为依赖项提供了实现,这些依赖项是如上所述的工厂方法。
我已经阅读了文档,但是看不到有任何方法可以关闭它。
是否可以:
在我的情况下,我只想利用我用诸如此类的工厂方法显式定义的依赖项,否则,如果未配置显式注册,则抛出异常。
感谢您提供的任何帮助。