本文整理汇总了C#中SimpleInjector.Container.RegisterOpenGeneric方法的典型用法代码示例。如果您正苦于以下问题:C# Container.RegisterOpenGeneric方法的具体用法?C# Container.RegisterOpenGeneric怎么用?C# Container.RegisterOpenGeneric使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SimpleInjector.Container
的用法示例。
在下文中一共展示了Container.RegisterOpenGeneric方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Register
public static void Register(Container container)
{
container.RegisterOpenGeneric(typeof(IRepository<>), typeof(Repository<>));
// Single services
container.Register<IContext, DefaultContext>();
container.Register<ICommandPersister, DefaultCommandPersister>();
container.Register<ICommandSerializer, NewtonsoftCommandSerializer>();
//container.Register<ICommandSerializer, JilCommandSerializer>();
AddInterfaceForEachDerivedType(container, typeof(TableBase), typeof(ITableBeforeSave<>));
AddInterfaceForEachDerivedType(container, typeof(TableBase), typeof(ITableAfterSave<>));
AddInterfaceForEachDerivedType(container, typeof(CommandBase), typeof(ICommandBeforeProcess<>));
AddInterfaceForEachDerivedType(container, typeof(CommandBase), typeof(ICommandBeforeSave<>));
AddInterfaceForEachDerivedType(container, typeof(CommandBase), typeof(ICommandAfterSave<>));
// default persister
container.RegisterOpenGeneric(typeof(ICommandSave<>), typeof(DefaultSaver<>));
// override persisters
container.Options.AllowOverridingRegistrations = true;
//container.RegisterOpenGeneric(typeof(InsertCommandFor<>), typeof(SimpleCommandsDefaultSaver<>));
//container.RegisterManyForOpenGeneric(typeof(ICommandSave<>), AppDomain.CurrentDomain.GetAssemblies());
//container.RegisterManyForOpenGeneric(typeof(ICommandSave<>).MakeGenericType(typeof(InsertCommandFor<>)), AppDomain.CurrentDomain.GetAssemblies());
/*
ReplaceInterfaceForEachDerivedType(container,
typeof(SimpleCommand<>),
typeof(ICommandSave<>).MakeGenericType(typeof(InsertCommandFor<>))
);*/
//RegisterAllPersisters();
}
示例2: RegisterServices
public void RegisterServices(Container container)
{
container.RegisterPerWebRequest(() => new BloggableDbContext(AppSettingConstants.DefaultDbConnectionName));
container.RegisterPerWebRequest<DbContext>(container.GetInstance<BloggableDbContext>);
container.RegisterPerWebRequest<IdentityDbContext<User>>(container.GetInstance<BloggableDbContext>);
container.RegisterOpenGeneric(typeof(IDeletableEntityRepository<>), typeof(EfDeletableEntityRepository<>));
container.RegisterOpenGeneric(typeof(IRepository<>), typeof(EfRepository<>));
}
示例3: Config
public static void Config(Container container)
{
container.RegisterPerWebRequest<IDatabaseFactory,DatabaseFactory>();
container.RegisterOpenGeneric(typeof(IRepository<>), typeof(Repository<>));
container.RegisterPerWebRequest<IUnitOfWork, UnitOfWork>();
container.Register<IProductRepository, ProductRepository>();
container.Register(()=>new SrcSamples());
}
示例4: Register
public static Container Register()
{
// 1. Create a new Simple Injector container
var container = new Container();
container.RegisterPerWebRequest<DbContext, EntityDatabaseContext>();
container.Register<IUnitOfWork, EntityFrameworkUnitOfWork>();
container.RegisterOpenGeneric(typeof(IGenericRepository<>), typeof(EntityFrameworkGenericRepository<>));
container.Register<IUserService, UserService>();
return container;
}
示例5: Register
public static void Register(HttpConfiguration config)
{
var container = new Container();
var webapiLifestyle = new WebApiRequestLifestyle();
container.RegisterWebApiRequest<ITransactionEngine, TransactionEngine>();
BuildManager.GetReferencedAssemblies();
AppDomain currentDomain = AppDomain.CurrentDomain;
container.RegisterManyForOpenGeneric(typeof(IQueryHandler<,>), webapiLifestyle, currentDomain.GetAssemblies());
container.RegisterManyForOpenGeneric(typeof(ICommandHandler<>), webapiLifestyle, currentDomain.GetAssemblies());
// Veroorzaakt een StackOverFlowException bij opvragen:
container.RegisterOpenGeneric(typeof(ICommandHandler<>), typeof(UpdateFeaturesCommandHandler<,>), webapiLifestyle,
c => !c.Handled);
container.RegisterSingle<ITransactionalCommandHandlerFactory>(new TransactionalCommandHandlerFactory(container));
container.RegisterWebApiControllers(config);
container.Verify();
GlobalConfiguration.Configuration.DependencyResolver = new SimpleInjectorWebApiDependencyResolver(container);
}
示例6: RegisterServices
public void RegisterServices(Container container)
{
container.RegisterOpenGeneric(typeof(IDeletableEntityAdministrationService<>), typeof(DeletableEntityAdministrationService<>));
container.RegisterOpenGeneric(typeof(IAdministrationService<>), typeof(AdministrationService<>));
}
示例7: RegisterOpenGenericNonGeneric
public RegisterOpenGenericNonGeneric()
{
var container = new Container();
container.RegisterOpenGeneric(typeof(IRepository<>), typeof(Repository<,>));
}
示例8: RegisterOpenGenericLifestyleNonGeneric
public RegisterOpenGenericLifestyleNonGeneric()
{
var container = new Container();
container.RegisterOpenGeneric(typeof(IRepository<>), typeof(Repository<,>), Lifestyle.Transient);
}