I use Activator.CreateInstance() like below
public class EntityBase
{
public EntityBase()
{
}
private readonly IServiceProvider serviceProvider;
public EntityBase(IServiceProvider serviceProvider)
{
this.serviceProvider = serviceProvider;
}
Type propertyType = GetPropertyType("ORMLawEntity");
Type type = propertyType.GetGenericArguments().Single();
object obj = Activator.CreateInstance(type);
}
to create the below Entity:
public class ORMLawEntity : EntityBase
{
private readonly ILazyLoader _lazyLoader;
[JsonConstructor]
public ORMLawEntity()
{
base.PrimaryKey = "idLaw";
base.EntityName = "Law";
}
public ORMLawEntity(ILazyLoader lazyLoader)
{
base.PrimaryKey = "idLaw";
base.EntityName = "Law";
_lazyLoader = lazyLoader;
}
[Key]
public long idLaw { set; get; }
private ORMCatalogValueEntity _LawTypeCIDEntity;
public virtual ORMCatalogValueEntity LawTypeCIDEntity
{
set { _LawTypeCIDEntity = value; }
get {
return _lazyLoader.Load(this, ref _LawTypeCIDEntity);
}
}
}
but when I use Activator.CreateInstance(type) default constructor executed and I don't have lazyloader. but I want to fill lazyLoader for LawTypeCIDEntity property.
Add the params inside the
CreateInstancemethod. The appropriate constructor will implicitly be resolved.If you want to inject it from a DI container