我正在开发一个项目,其中Unity框架用作IoC容器.我的问题涉及使用property-或setter注入将可选依赖项(在本例中为记录器)注入到几个类中.
我不想使用这些可选的依赖项来混乱所有类的构造函数,但是我找不到在Unity中处理它的好方法.根据MSDN文档,您可以通过向属性添加属性来实现此目的:
private ILogger logger;
[Dependency]
public ILogger Logger
{
get { return logger; }
set { logger = value; }
}
Run Code Online (Sandbox Code Playgroud)
我觉得这很难看.在StructureMap中,可以执行以下操作来设置给定类型的所有属性:
SetAllProperties(policy => policy.OfType<ILog>());
Run Code Online (Sandbox Code Playgroud)
有谁知道在Unity中是否有可能做类似的事情?
编辑:
Kim Major建议使用这种方法,也可以通过代码实现.
我会对如何自动为所有匹配属性执行此操作的示例感兴趣.
有没有一种好方法可以排除某些页面使用HTTP模块?
我有一个使用自定义HTTP模块验证会话的应用程序.HTTP配置在web配置中设置如下:
<system.web>
<!-- ... -->
<httpModules>
<add name="SessionValidationModule"
type="SessionValidationModule, SomeNamespace" />
</httpModules>
</system.web>
Run Code Online (Sandbox Code Playgroud)
要从页面中排除模块,我尝试这样做(没有成功):
<location path="ToBeExcluded">
<system.web>
<!-- ... -->
<httpModules>
<remove name="SessionValidationModule" />
</httpModules>
</system.web>
</location>
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?