Возможно ли построить объект с его внутренним конструктором в универсальном методе?
public abstract class FooBase { }
public class Foo : FooBase {
internal Foo() { }
}
public static class FooFactory {
public static TFooResult CreateFoo<TFooResult>()
where TFooResult : FooBase, new() {
return new TFooResult();
}
}
FooFactory
находится в той же сборке, что и Foo
.Классы вызывают фабричный метод следующим образом:
var foo = FooFactory.CreateFoo<Foo>();
Они получают ошибку времени компиляции:
'Foo' должен быть неабстрактного типа с открытым конструктором без параметров вЧтобы использовать его как параметр 'TFooType' в универсальном типе или методе 'FooFactory.CreateFoo ()'
Есть ли способ обойти это?
Я также пытался:
Activator.CreateInstance<TFooResult>();
Это вызывает ту же ошибку во время выполнения.