我有一个简单的对象,我正在尝试向其中注入属性。我不清楚为什么这似乎不起作用。在我调用 resolve 后,我的属性最终为空。
这是我的对象:
public interface IBasePage
{
[Dependency]
string Title { get; set; }
[Dependency]
string BaseUrl { get; set; }
}
这是我的统一配置文件中的内容:
<register type="IWebActionDriver" mapTo="ConcreteWebDriver"/>
<register type="IBasePage" name="LoginPage" mapTo="LoginPage">
<property name="Title" value="Login Page Title"/>
<property name="BaseUrl" value="http://dev1.company.com"/>
</register>
在我的单元测试的启动方法中,这就是我想要做的:
_container = new UnityContainer();
UnityConfigurationSection configSection =
(UnityConfigurationSection) ConfigurationManager.GetSection("unity");
configSection.Configure(_container, "testContainer");
_page = _container.Resolve<LoginPage>();
我的具体课程如下所示:
[InjectionConstructor]
public LoginPage(IWebActionDriver driver)
{
_driver = driver;
_driver.Initialize();
this.CurrentPage = _driver;
}
瞧,Title 和 BaseUrl 的属性为空。可以在对象上同时使用构造函数注入和设置属性吗?我在这里做其他奇怪的事情吗?