在这段代码中:
container.Register<IDataHoldingSession<DbContext>, EntityFrameworkSession>();
container.RegisterAll<ISession>(typeof(IDataHoldingSession<DbContext>));
container.RegisterDecorator(typeof(IDataHoldingSession<>), typeof(ValidatingSession<>));
当容器被请求时IEnumerable<ISession>
,它会得到一个包含EntityFrameworkSession
,但没有应用装饰器。我怎样才能让它在上面的代码中应用装饰器?
我相信这是因为没有要求容器IEnumerable<IDataHoldingSession<T>>
。我将 XML 文档解释RegisterAll
为暗示在这种情况下将要求容器提供一个实例IDataHoldingSession<DbContext>
,我认为这应该导致应用装饰器。但是,在这种情况下,装饰器似乎被绕过了,因为RegisterAll
它是用ISession
服务类型调用的。