通过Spring加载带有MockRepository属性的MockRepository对象

本文关键字:MockRepository 属性 对象 Spring 加载 通过 | 更新日期: 2023-09-27 17:51:18

版本:c# 4.0, Spring。Net 1.3.2, RhinoMocks 3.6.1

给定这两个接口:

public interface IDivisionSelectView
{
    // ...
}
public interface ILoginView
{
    IDivisionSelectView DivisionSelectView { get; }
    // ...
}

我正在尝试使用Spring。Net使用Rhino.Mocks.MockRepository.GenerateMock<>()工厂为ILoginView创建代理对象,该对象具有其DivisionSelectView属性自动设置为IDivisionSelectView代理(使用相同的工厂)。下面是Spring XML:

<object id="IDivisionSelectView"
        type="Rhino.Mocks.MockRepository, Rhino.Mocks"
        factory-method="GenerateMock&lt;[Asm.Ns.IDivisionSelectView, Asm]>"
        singleton="false">
  <constructor-arg name="argumentsForConstructor">
    <list element-type="System.Object, mscorlib">
    </list>
  </constructor-arg>
</object>
<object id="ILoginView"
        type="Rhino.Mocks.MockRepository, Rhino.Mocks"
        factory-method="GenerateMock&lt;[Asm.Ns.ILoginView, Asm]>"
        singleton="false">
  <constructor-arg name="argumentsForConstructor">
    <list element-type="System.Object, mscorlib">
    </list>
  </constructor-arg>
  <property name="DivisionSelectView" ref="IDivisionSelectView">
  </property>
</object>

下面是调用c#代码:

IApplicationContext ctx = new XmlApplicationContext(
    "assembly://Asm/Asm/spring.xml");
ContextRegistry.RegisterContext(ctx);
ILoginView view = ctx.GetObject("ILoginView") as ILoginView;

下面是我得到的错误:

Spring.Objects.Factory.ObjectCreationException was unhandled by user code

Message=Error creating object with name 'ILoginView' defined in 'assembly [Asm, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null], resource [Asm.spring.xml] line 14' : Initialization of object failed : 'DivisionSelectView' node cannot be resolved for the specified context [Castle.Proxies.ILoginViewProxy4fa9c3fa65ca497bb09ce6358d876e4d].

这可能吗?

通过Spring加载带有MockRepository属性的MockRepository对象

ILoginView的DivisionSelectView属性没有setter