Arn*_*kas 6 .net c# structuremap inversion-of-control
我有一个接口IFileSystemStructureEvaluator,它有两个具体的实现:NtfsFileSystemStructureEvaluator和FtpFileSystemStructureEvaluator.
我希望能够请求适当的IFileSystemStructureEvaluator,具体取决于传递给构造函数的Uri是否是FTP uri的文件uri.
我怎样才能在StructureMap中实现这一点?
谢谢
您应该查看Jeremy Miller 的条件对象构建帖子。它允许您使用一些条件检查来确定您将获得的实例。这听起来像是解决你的问题的方法。
编辑如下
StructureMap 用户列表上有几个关于条件构造的问题(即,如果满足此条件,则返回此对象,否则返回此其他对象)。为了满足这一明显的需求,StructureMap 2.5.2 引入了新的 ConditionalInstance,它允许用户根据 Predicate 布尔测试有效地切换活动实例。以下是使用 InstanceExpression 的新 Conditional() 语法的快速示例:
var container = new Container(x =>
{
x.InstanceOf<Rule>().Is.Conditional(o =>
{
o.If(c => false).ThenIt.Is.OfConcreteType<ARule>();
o.If(c => true).ThenIt.IsThis(GREEN);
o.TheDefault.IsThis(RED);
}).WithName("conditional");
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1877 次 |
| 最近记录: |