【发布时间】:2013-11-25 15:57:24
【问题描述】:
我将 Castle Windsor 用于 IOC,将 Fluent NHibernate 用于 ORM。我正在创建集成测试来验证映射和基本功能。如何访问由 Castle Windsor 实例化的对象?
这是我的存储库安装程序:
public class RepositoryInstaller : IWindsorInstaller
{
public void Install(IWindsorContainer container, IConfigurationStore store)
{
container.Register(
Component.For<IContainerRepository>().ImplementedBy<ContainerRepository>().LifestylePerWebRequest());
}
}
这是我的存储库:
公共接口 IContainerRepository { IEnumerable GetActiveContainers(); }
公共类 ContainerRepository : BaseRepository, IContainerRepository { 公共 ContainerRepository(ISession 会话) :基础(会话) { }
public IEnumerable<Container> GetActiveContainers()
{
var query = Session.CreateCriteria<Container>()
.Add(Restrictions.Eq("ContentsType", "Raw Material"))
.Add(Expression.Sql("QTY_IN - QTY_OUT > 0"));
return query.List<Container>();
}
}
这是一个我想写的简单测试:
[Test]
public void GetActiveTest()
{
var repo = **DoSomethingHere**.GetInstance<IContainerRepository>();
var list = repo.GetActiveContainers().ToList();
Assert.IsTrue(list.Count > 0);
}
【问题讨论】:
标签: c# fluent-nhibernate castle-windsor