/// <summary> /// Get the entity Service(supporting CRUD operations). /// </summary> /// <param name="typeFullName"></param> /// <returns></returns> public static object GetService(string typeFullName) { EntityRegistrationContext ctx = _managableEntities[typeFullName]; // Singleton. if (ctx.IsSingletonService) { return(ctx.Service); } object service = null; object repository = null; if (ctx.CreationMethod == EntityCreationType.Factory) { service = ctx.FactoryMethodForService(); if (ctx.FactoryMethodForRepository != null) { repository = ctx.FactoryMethodForRepository(); } if (repository != null && ctx.IsRepositoryConfigurationRequired) { RepositoryConfigurator.Configure((IRepositoryConfigurable)repository); } } else { service = _entityRegistrarIoc.GetService(typeFullName); } return(service); }
/// <summary> /// Get the Domain entity Service object that supports(CRUD) operations. /// </summary> /// <param name="type"></param> /// <returns></returns> public static object GetRepository(string typeFullName) { EntityRegistrationContext ctx = _managableEntities[typeFullName]; // If factory method was supplied. if (ctx.FactoryMethodForRepository != null) { return(ctx.FactoryMethodForRepository()); } return(_entityRegistrarIoc.GetRepository(typeFullName)); }