雖然我之前在溫莎城堡中使用泛型,但是這種特殊的組合方式目前讓我難倒了。在具有繼承和無接口的城堡中解決泛型構造函數參數
我想解決它作爲一個構造函數參數,它是通過顯式調用resolve()在單元測試中模擬的。
但我無法弄清楚需要註冊和解決什麼樣的組合。 我在下面的代碼中顯示一個失敗的測試,以清除問題。
public abstract class BaseSettings<T> where T : class
{
protected void Save(T obj)
{ }
}
public class AddinSettings : BaseSettings<AddinSettings>
{ }
public class OtherSettings : BaseSettings<OtherSettings>
{ }
public class LogConfig<T> where T : class
{
private readonly BaseSettings<T> _client;
public LogConfig(BaseSettings<T> client)
{
_client = client;
}
public BaseSettings<T> Client
{
get { return _client; }
}
}
[Test]
public void resolve_generics()
{
var container = new WindsorContainer();
container.Register(Component.For<OtherSettings >());
var otherSettings = container.Resolve<LogConfig<OtherSettings>>();
Assert.That(otherSettings, Is.Not.Null);
}
好的改進。感謝我不知道這是基於開放式仿製藥的作品。 – Marwijn
神奇的是,這就是我需要的 – PandaWood