- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在有条件地创建依赖项方面遇到困难。谷歌搜索,我还没有找到使用BuildStack和条件谓词的好例子。
这是我在注册表中执行的操作:
//snip
public SomeRegistry()
{
this.InstanceOf<IFoo>().Is.Conditional(
c =>
{
c.TheDefault.Is.ConstructedBy(() => new FooZ());
c.If(
p => p.ParentType.IsAssignableFrom(typeof(IBar)) &&
p.BuildStack.Current.RequestedType.IsAssignableFrom(typeof(IDoStuffWithFooA)))
.ThenIt.Is.ConstructedBy(() => new FooA());
c.If(
p => p.ParentType.IsAssignableFrom(typeof(IBar)) &&
p.BuildStack.Current.RequestedType.IsAssignableFrom(typeof(IDoStuffWithFooB)))
.ThenIt.Is.ConstructedBy(() => new FooB());
});
this.Scan(
s =>
{
s.TheCallingAssembly();
s.WithDefaultConventions();
});
}
//snip
//snip
[TestFixture]
public class ConditionalCreationTest
{
[Test]
public void GiveUsFooAWhenDoingStuffWithA()
{
var dependA = ObjectFactory.GetInstance<IDoStuffWithFooA>();
Assert.IsInstanceOfType<FooA>(dependA.Foo);
}
[Test]
public void GiveUsFooBWhenDoingStuffWithB()
{
var dependB = ObjectFactory.GetInstance<IDoStuffWithFooB>();
Assert.IsInstanceOfType<FooB>(dependB.Foo);
}
[Test]
public void GiveUsFooZByDefault()
{
var foo = ObjectFactory.GetInstance<IFoo>();
Assert.IsInstanceOfType<FooZ>(foo);
}
[Test]
public void GiveUsProperFoosWhenWeDontAskDirectly()
{
var bar = ObjectFactory.GetInstance<IBar>();
Assert.IsInstanceOfType<FooA>(bar.DoStuffA.Foo);
Assert.IsInstanceOfType<FooB>(bar.DoStuffB.Foo);
}
[SetUp]
public void SetUp()
{
ObjectFactory.Initialize(a => a.AddRegistry<SomeRegistry>());
}
}
//snip
//snip
public class Bar : IBar
{
private IDoStuffWithFooA doStuffA;
private IDoStuffWithFooB doStuffB;
public Bar(IDoStuffWithFooA doStuffA, IDoStuffWithFooB doStuffB)
{
this.doStuffA = doStuffA;
this.doStuffB = doStuffB;
}
public IDoStuffWithFooA DoStuffA
{
get
{
return this.doStuffA;
}
}
public IDoStuffWithFooB DoStuffB
{
get
{
return this.doStuffB;
}
}
}
//snip
GiveUsProperFoosWhenWeDontAskDirectly
测试。
FooA
时获取
IDoStuffWithFooA
进行初始化,而在
FooB
时需要
IDoStuffWithFooB
进行初始化,无论何时需要在图中。条件谓词的正确语法是什么?
最佳答案
通常最好尝试避免使用该语法进行条件构造,这比“使用”更难解释。您的情况可以使用以下方法解决:
For<IDoStuffWithFooA>().Use<DoStuffWithFooA>().Ctor<IFoo>().Is<FooA>();
For<IDoStuffWithFooB>().Use<DoStuffWithFooB>().Ctor<IFoo>().Is<FooB>();
For<IFoo>().Use<FooZ>();
Scan(
s =>
{
s.TheCallingAssembly();
s.WithDefaultConventions();
});
关于configuration - StructureMap HowTo:深对象的条件构造,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2425565/
注意:这不是 Translating PHP date() for Multilingual Site 的副本.我读过了! 对不起,我必须先解释一下我的框架是如何工作的,这样你才能准确地理解我的问题出
我在 PHP 5.2 中使用 Console_Getopt,发现它与其他语言(perl、bash、java)中的 getopt 有多么不同令人惊讶。谁能推荐如何从返回的数组“$opts”中解析参数?
我喜欢制作一个.htaccess文件来重定向从网站上收到的任何错误。 我已删除旧站点中的所有页面。但是我不知道人们在书中写了几页。 新的网页和网站的结构完全不同...因此,没有页面与旧的页面相同,更不
我需要实现一个由外部系统返回的 session 池,这样我就可以在需要时快速重用它们(创建 session 需要一段时间)。我使用数据源创建了一个数据库连接池(来自 Apache 的 DBCP),它是
我刚开始使用 C++,我无法理解我的代码是如何工作的: 好的,我分配内存,但在分配时没有人知道要分配的内存大小。但代码仍然有效。分配了多少内存?编译器如何知道我需要多少内存? 编辑: 抱歉,如果我的问
我正在编写一个存储一些数据的 Python 应用程序。为了存储数据,我编写了一个带有抽象方法的连接类(使用 Python 的 abc 模块)。此类是所有存储后端派生自的父类(super class)。
我想编写一个名为 size() 的函数,它将接受文件名或文件名列表,并分别返回文件的大小或文件大小的总和。如何在没有 python 中不可用的函数重载的情况下做到这一点? 谢谢 确定 最佳答案 def
我需要传送大量的 HTTP 内容(让我们说的很简单 - 具有 HTTP 访问权限的大存储 - 类似于 AWS S3)这需要的带宽超过一台服务器的带宽(我们每台服务器获得 200MBit,问题是不要改变
给定以下 UML 表示,我怎样才能获得 BullDog 的实例,它只公开了 getter 方法? BullDog 的实例不应有任何可用的 setter 方法。 BullDog 的实例应该只有 gett
我想配置 gitolite 以便 开发者无法推送到 master 和 stage1 开发人员可以对所有其他分支(他们想要的任何名称)进行 RW 操作 我想到的最好的事情是: repo foo bar
这个问题已经有答案了: 已关闭11 年前。 Possible Duplicate: In Java, what is the best way to determine the size of an
基于最小的 C 解析器示例,并使用以下依赖项: compile(group: "org.codehaus.sonar.sslr", name: "sslr", version: "1.20"); co
我在有条件地创建依赖项方面遇到困难。谷歌搜索,我还没有找到使用BuildStack和条件谓词的好例子。 这是我在注册表中执行的操作: //snip public SomeRegistry() {
下面是部分html代码 我尝试使用 jquery 克隆 #test1 节点并删除添加按钮,然后将结果添加到 #container 我尝试编写如下代码,但似乎不起作用 $("#test1").clo
这个问题在这里已经有了答案: How to loop through a plain JavaScript object with the objects as members (28 个答案) 关
你好 不要说这是一个重复的问题,因为我已经阅读了两天。他们中没有一个真正提供有用的答案。 我在 SD 卡上的一个文件夹中有许多不同的文件。想要根据 apk、txt、mp3、avi、jpg 打开正确的应
在父行上设置空值时如何删除子行(在删除级联上?)? 这是数据库设计。 表 A [id、b_id_1、b_id_2] 表B[id,其他字段...] b_id_1 和 b_id_2 可以为 NULL 如果
我下载了 Open ERP 服务器和网络,决定不使用更厚的 gtk。我在 eclipse 中添加了 2 作为项目,pydev 在 Ubuntu 11.10 上运行,然后启动。我完成了 Web 客户端设
我需要将一些图形元素放在一个 div 中,这些元素应该在具有不同分辨率的各种屏幕(例如,移动屏幕)上显示。例如,类似于关闭覆盖窗口的“X”按钮。我可能会想到几个实现它的选项: 有几个 JPEG(每个分
这看起来应该是直截了当的,但我很难过。我有一个指向 View Controller 的链接,该 View Controller 最终使用 send_data 将文件下载到用户的硬盘驱动器。这非常有效,
我是一名优秀的程序员,十分优秀!