У меня есть конкретные типы для интерфейсов, сконфигурированных при запуске, но я хочу создать экземпляры конкретного типа во время выполнения с настройкой свойств или установкой разных значений в конструкторе. Все создание экземпляров, которые я вижу, знают о конкретном типе, во время выполнения я не знаю конкретного типа. Есть ли способ создать конкретный экземпляр интерфейса/класса, не зная конкретного типа? Это то, что я видел:Пример создания StructureMap
[Test]
public void DeepInstanceTest_with_SmartInstance()
{
assertThingMatches(registry =>
{
registry.ForRequestedType<Thing>().TheDefault.Is.OfConcreteType<Thing>()
.WithCtorArg("name").EqualTo("Jeremy")
.WithCtorArg("count").EqualTo(4)
.WithCtorArg("average").EqualTo(.333);
});
}
ИЛИ:
var container = new Container(x =>
{
x.ForConcreteType<SimplePropertyTarget>().Configure
.SetProperty(target =>
{
target.Name = "Max";
target.Age = 4;
});
});
Я хочу сделать что-то подобное ... но не знаю, конкретный тип .... только абстрактный класс или интерфейс (в этом случае будут иметь свойства). Однако конкретный тип настроен.
вам не нужен шаблон фабрики, потому что StructureMap заботится о том, что для вас. Я нашел ответ, хотя ... спасибо. – CSharpAtl