public static object CreateInstance(Type projectionInterfaceType, object tag = null) { var instance = Activator.CreateInstance(ProjectionTypeBuilder.GetProjectionType(projectionInterfaceType)); SetTag(instance, tag); return(instance); }
public static TProjectionInterface CreateInstance <TProjectionInterface>(object tag = null) { var instance = (TProjectionInterface)Activator.CreateInstance( ProjectionTypeBuilder.GetProjectionType(typeof(TProjectionInterface))); SetTag(instance, tag); return(instance); }
public static TProjectionInterface CreateInstance <TProjectionInterface>( Action <Initializer <TProjectionInterface> > initializeAction, object tag = null) { if (initializeAction == null) { throw new ArgumentNullException(nameof(initializeAction)); } var instance = (TProjectionInterface)Activator.CreateInstance( ProjectionTypeBuilder.GetProjectionType(typeof(TProjectionInterface))); var initializer = new Initializer <TProjectionInterface>(instance); initializeAction(initializer); SetTag(instance, tag); return(instance); }
public static Type GetProjectionType <TProjectionInterface>() => ProjectionTypeBuilder.GetProjectionType(typeof(TProjectionInterface));
public static Type GetProjectionType(Type projectionInterfaceType) => ProjectionTypeBuilder.GetProjectionType(projectionInterfaceType);