//Func<CustomUnitOfWorkSettings, ITransactionManager> getTransactionManager; /// <summary> /// Configures <see cref="UnitOfWorkScope"/> settings. /// </summary> /// <param name="containerAdapter">The <see cref="IContainerAdapter"/> instance.</param> public void Configure(IContainerAdapter containerAdapter) { var settings = new CustomUnitOfWorkSettings() { AutoCompleteScope = _autoCompleteScope, DefaultIsolation = _defaultIsolation }; containerAdapter.RegisterInstance(settings); containerAdapter.RegisterSingleton <IUnityUnitOfWorkManager, UnityUnitOfWorkManager>(); //containerAdapter.RegisterInstance<ITransactionManager>(getTransactionManager(settings)); containerAdapter.RegisterInstance <IUnitOfWorkGuid>(new UnitOfWorkGuid()); containerAdapter.RegisterSingleton <IUnitOfWorkScopeFactory, UnityUnitOfWorkScopeFactory>(); containerAdapter.Register <IUnitOfWorkScope, UnityUnitOfWorkScope>(); //UnitOfWorkSettings.AutoCompleteScope = _autoCompleteScope; //UnitOfWorkSettings.DefaultIsolation = _defaultIsolation; if (_useBusinessTransaction) { containerAdapter.RegisterSingleton <IBusinessTransactionObservable, BusinessTransactionSubjectWrapper>(); containerAdapter.RegisterSingleton <IBusinessTransactionSubscriber, BusinessTransactionSubjectWrapper>(); containerAdapter.RegisterInstance <IBusinessTransactionSubjectFactory>(new BusinessTransactionSubjectFactory(() => new BusinessTransactionSubject())); } else { var subject = new StubTransactionSubject(); containerAdapter.RegisterInstance <IBusinessTransactionObservable>(subject); containerAdapter.RegisterInstance <IBusinessTransactionSubscriber>(subject); containerAdapter.RegisterInstance <IBusinessTransactionSubjectFactory>(new BusinessTransactionSubjectFactory(() => subject)); } //IBusinessTransactionSubject subject = !_useBusinessTransaction? new StubTransactionSubject(): new BusinessTransactionSubjectWrapper(); //containerAdapter.RegisterInstance<IBusinessTransactionSubjectFactory>(new BusinessTransactionSubjectFactory(!_useBusinessTransaction ? () => subject : () => new BusinessTransactionSubject())); }
public IApplicationController RegisterSingletonView <TView, TImplementation>() where TView : IView where TImplementation : class, TView { _container.RegisterSingleton <TView, TImplementation>(); return(this); }
private void RegisterDefaults() { _containerAdapter.RegisterInstance <IContainerProvider>(_containerAdapter); _containerAdapter.Register(typeof(IMigrationLocator <>), typeof(TypeMigrationDependencyLocator <>)); _containerAdapter.RegisterInstance <IMongoMigrationSettings>(_settings); _containerAdapter.RegisterSingleton <ICollectionLocator, CollectionLocator>(); _containerAdapter.RegisterSingleton <IDatabaseTypeMigrationDependencyLocator, DatabaseTypeMigrationDependencyLocator>(); _containerAdapter.RegisterSingleton <IRuntimeVersionLocator, RuntimeVersionLocator>(); _containerAdapter.RegisterSingleton <IStartUpVersionLocator, StartUpVersionLocator>(); _containerAdapter.Register <IDocumentVersionService, DocumentVersionService>(); _containerAdapter.Register <IDatabaseVersionService, DatabaseVersionService>(); _containerAdapter.Register <IMigrationInterceptorFactory, MigrationInterceptorFactory>(); _containerAdapter.Register <DocumentVersionSerializer, DocumentVersionSerializer>(); _containerAdapter.Register <IStartUpDocumentMigrationRunner, StartUpDocumentMigrationRunner>(); _containerAdapter.Register <IDocumentMigrationRunner, DocumentMigrationRunner>(); _containerAdapter.Register <IMigrationInterceptorProvider, MigrationInterceptorProvider>(); _containerAdapter.Register <IStartUpDatabaseMigrationRunner, StartUpDatabaseMigrationRunner>(); _containerAdapter.Register <IDatabaseMigrationRunner, DatabaseMigrationRunner>(); _containerAdapter.Register <IMongoMigration, MongoMigration>(); }
public void LazyanBeUsedToResolveCircularDepenendency(IContainerAdapter adapter) { adapter.RegisterSingleton <ServiceWithRecursiveLazyDependency1>(); adapter.RegisterSingleton <ServiceWithRecursiveLazyDependency2>(); var resolved1 = adapter.Resolve <ServiceWithRecursiveLazyDependency1>(); var resolved2 = adapter.Resolve <ServiceWithRecursiveLazyDependency2>(); Assert.Same(resolved2, resolved1.Dependency); Assert.Same(resolved1, resolved2.Dependency); }
public void LazyanBeUsedToResolveCircularDepenendency(IContainerAdapter adapter) { adapter.RegisterSingleton<ServiceWithRecursiveLazyDependency1>(); adapter.RegisterSingleton<ServiceWithRecursiveLazyDependency2>(); var resolved1 = adapter.Resolve<ServiceWithRecursiveLazyDependency1>(); var resolved2 = adapter.Resolve<ServiceWithRecursiveLazyDependency2>(); Assert.Same(resolved2, resolved1.Dependency); Assert.Same(resolved1, resolved2.Dependency); }
public void SingletonLifetime(IContainerAdapter adapter) { adapter.RegisterSingleton <IService, IndependentService>(); var instance1 = adapter.Resolve <IService>(); var instance2 = adapter.Resolve <IService>(); Assert.Same(instance1, instance2); }
public void SingletonLifetime(IContainerAdapter adapter) { adapter.RegisterSingleton<IService, IndependentService>(); var instance1 = adapter.Resolve<IService>(); var instance2 = adapter.Resolve<IService>(); Assert.Same(instance1, instance2); }
public void TransientFactoryUsedBySingletonStillCreatesTransient(IContainerAdapter adapter) { adapter.RegisterTransient <IService, IndependentService>(); adapter.RegisterSingleton <ServiceWithFuncConstructorDependency>(); var service = adapter.Resolve <ServiceWithFuncConstructorDependency>(); var first = service.Factory(); var second = service.Factory(); Assert.NotSame(first, second); }
protected override void RegisterDependencies(IContainerAdapter container) { container.RegisterSingleton <LoginViewModel>(); container.RegisterSingleton <LoginView>(); container.RegisterSingleton <HomeViewModel>(); container.RegisterSingleton <HomeView>(); container.RegisterType <EventToCommandViewModel>(); container.RegisterType <EventToCommandView>(); container.RegisterType <DialogViewModel>(); container.RegisterType <DialogView>(); container.RegisterType <TemplateSelectorViewModel>(); container.RegisterType <TemplateSelectorView>(); container.RegisterType <MessengerViewModel>(); container.RegisterType <MessengerView>(); }
public void RegisterSingletonFactory() { _container = new PillarDefaultIoc(); _container.RegisterSingleton <IFoo>(() => new Foo()); var foo1 = _container.Resolve <IFoo>(); var foo2 = _container.Resolve <IFoo>(); Assert.Same(foo1, foo2); }
/// <summary> /// Called by NCommon <see cref="Configure"/> to configure state storage. /// </summary> /// <param name="containerAdapter">The <see cref="IContainerAdapter"/> instance that can be /// used to register state storage components.</param> public void Configure(IContainerAdapter containerAdapter) { if (_customSessionType != null) { containerAdapter.Register(typeof(ISessionState), _customSessionType); } else { containerAdapter.Register <ISessionStateSelector, DefaultSessionStateSelector>(); containerAdapter.Register <ISessionState, SessionStateWrapper>(); } if (_customLocalStateType != null) { containerAdapter.Register(typeof(ILocalState), _customLocalStateType); } else { containerAdapter.Register <ILocalStateSelector, DefaultLocalStateSelector>(); containerAdapter.Register <ILocalState, LocalStateWrapper>(); } if (_customCacheType != null) { containerAdapter.Register(typeof(ICacheState), _customCacheType); } else { containerAdapter.Register <ICacheState, HttpRuntimeCache>(); } if (_customApplicationStateType != null) { containerAdapter.RegisterSingleton(typeof(IApplicationState), _customApplicationStateType); } else { containerAdapter.RegisterSingleton <IApplicationState, ApplicationState>(); } containerAdapter.Register <IState, State.Impl.State>(); }
public void FactoryNoReuseBetweenRequests(IContainerAdapter adapter) { adapter.RegisterPerWebRequest<IService, IndependentService>(); adapter.RegisterSingleton<ServiceWithFuncConstructorDependency>(); var service = adapter.Resolve<ServiceWithFuncConstructorDependency>(); BeginRequest(adapter); var first = service.Factory(); EndRequest(adapter); BeginRequest(adapter); var second = service.Factory(); EndRequest(adapter); Assert.NotSame(first, second); }
public void FactoryNoReuseBetweenRequests(IContainerAdapter adapter) { adapter.RegisterPerWebRequest <IService, IndependentService>(); adapter.RegisterSingleton <ServiceWithFuncConstructorDependency>(); var service = adapter.Resolve <ServiceWithFuncConstructorDependency>(); BeginRequest(adapter); var first = service.Factory(); EndRequest(adapter); BeginRequest(adapter); var second = service.Factory(); EndRequest(adapter); Assert.NotSame(first, second); }
internal static void RegisterPillarDependencies(this IContainerAdapter container) { // service registration container.RegisterSingleton(container); // the container itself can be injected container.RegisterSingleton <IDialogProvider, DialogService>(); container.RegisterSingleton <IViewFactory, ViewFactory>(); container.RegisterSingleton <INavigator, Navigator>(); container.RegisterSingleton <IMessenger, Messenger>(); // current page resolver container.RegisterType <Func <Page> >(() => GetCurrentPage); // current PageProxy container.RegisterSingleton <IPage, PageProxy>(); }
// singletons generics public static void RegisterSingleton <TInterface>(this IContainerAdapter adapter) where TInterface : class { adapter.RegisterSingleton <TInterface, TInterface>(); }
public static void RegisterTransient <TService>(this IContainerAdapter container) { container.RegisterSingleton <TService, TService>(); }
public static void RegisterSingleton <TService, TImplementation>(this IContainerAdapter container) where TImplementation : TService { container.RegisterSingleton(typeof(TService), typeof(TImplementation)); }
public static void RegisterSingleton <TInterface>(this IContainerAdapter adapter, TInterface implementationInstance) where TInterface : class { adapter.RegisterSingleton(typeof(TInterface), implementationInstance); }
public static void RegisterSingleton <TInterface>(this IContainerAdapter adapter, Func <TInterface> implementationFactory) where TInterface : class { adapter.RegisterSingleton(typeof(TInterface), implementationFactory); }
public static void RegisterSingleton <TFrom, TTo>(this IContainerAdapter adapter) where TFrom : class where TTo : class, TFrom { adapter.RegisterSingleton(typeof(TFrom), typeof(TTo)); }
public void TransientFactoryUsedBySingletonStillCreatesTransient(IContainerAdapter adapter) { adapter.RegisterTransient<IService, IndependentService>(); adapter.RegisterSingleton<ServiceWithFuncConstructorDependency>(); var service = adapter.Resolve<ServiceWithFuncConstructorDependency>(); var first = service.Factory(); var second = service.Factory(); Assert.NotSame(first, second); }