プロパティを挿入しようとしている単純なオブジェクトがあります。なぜこれが機能していないように見えるのかわかりません。resolveを呼び出した後、プロパティがnullになってしまいます。
これが私の目的です:
public interface IBasePage
{
[Dependency]
string Title { get; set; }
[Dependency]
string BaseUrl { get; set; }
}
これは私のUnity設定ファイルにあるものです:
<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のプロパティはnullです。オブジェクトにコンストラクタインジェクションとセットプロパティの両方を使用しても大丈夫ですか?私はここで何か奇妙なことをしていますか?