Я весь день боролся с головой, и я не могу найти какое-либо решение для моего случая, поэтому мне нужна помощь. Слушайте, это моя проблема: у меня есть два класса, которые реализуют один интерфейс
public interface ICacheObject
{
string Get();
}
public class WebCacheObject : ICacheObject
{
public string Get()
{
return "Web";
}
}
public class SysteCacheObject : ICacheObject
{
public string Get()
{
return "System";
}
}
Таким образом, в каком-то другом предложении «Например, в тесте класса» мне нужно ввести WebCacheObject, а в предложении «Test2» мне необходимо ввести SystemCacheObject. Я сделал это в Initialize:
ObjectFactory.Initialize(c =>{ c.For<IMessage>().Use<Message>();
c.For<ICacheObject>().ConditionallyUse(t =>{t.If(g => g.RequestedName == "HTTP")
.ThenIt.Is.ConstructedBy(
() =>
new WebCacheObject());
t.If(g =>g.RequestedName =="OtherCache")
.ThenIt.Is.ConstructedBy(
() =>
new SysteCacheObject
());
});
Но я не знаю, как вызвать Test-s clase-s, поэтому, если я вызываю так, чтобы условие было истинным (или как изменить условие, чтобы это работало)
ObjectFactory.GetInstance < 'ITest> ()
Тестовое предложение будет иметь WebCache в другом случае SystemCache ???
Извините за мой плохой английский.