当前位置: 首页>>代码示例>>C#>>正文


C# IUnityContainer.RegisterInstance方法代码示例

本文整理汇总了C#中IUnityContainer.RegisterInstance方法的典型用法代码示例。如果您正苦于以下问题:C# IUnityContainer.RegisterInstance方法的具体用法?C# IUnityContainer.RegisterInstance怎么用?C# IUnityContainer.RegisterInstance使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IUnityContainer的用法示例。


在下文中一共展示了IUnityContainer.RegisterInstance方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: RegisterTypes

        /// <summary>Registers the type mappings with the Unity container.</summary>
        /// <param name="container">The unity container to configure.</param>
        /// <remarks>There is no need to register concrete types such as controllers or API controllers (unless you want to 
        /// change the defaults), as Unity allows resolving a concrete type even if it was not previously registered.</remarks>
        public static void RegisterTypes(IUnityContainer container) {
            //Standard configuration
            StandardUnityConfig.RegisterStandardFacetFactories(container);
            StandardUnityConfig.RegisterCoreContainerControlledTypes(container);
            StandardUnityConfig.RegisterCorePerTransactionTypes<PerRequestLifetimeManager>(container);

            // config
            container.RegisterInstance<IReflectorConfiguration>(NakedObjectsRunSettings.ReflectorConfig(), (new ContainerControlledLifetimeManager()));
            container.RegisterInstance<IEntityObjectStoreConfiguration>(NakedObjectsRunSettings.EntityObjectStoreConfig(), new ContainerControlledLifetimeManager());


            // surface
            container.RegisterType<IOidTranslator, OidTranslatorSemiColonSeparatedList>(new PerRequestLifetimeManager());

            container.RegisterType<IOidStrategy, EntityOidStrategy>(new PerRequestLifetimeManager());
            container.RegisterType<IIdHelper, IdHelper>(new PerRequestLifetimeManager());

            container.RegisterType<IFrameworkFacade, FrameworkFacade>(new PerRequestLifetimeManager());

            //Externals
            container.RegisterType<IPrincipal>(new InjectionFactory(c => HttpContext.Current.User));

            // Facet decorators 
            if (NakedObjectsRunSettings.AuditConfig() != null) {
                container.RegisterType(typeof(IFacetDecorator), typeof(AuditManager), "AuditManager", new ContainerControlledLifetimeManager());
                container.RegisterInstance(typeof(IAuditConfiguration), NakedObjectsRunSettings.AuditConfig(), new ContainerControlledLifetimeManager());
            }

            if (NakedObjectsRunSettings.AuthorizationConfig() != null) {
                container.RegisterType(typeof(IFacetDecorator), typeof(AuthorizationManager), "AuthorizationManager", new ContainerControlledLifetimeManager());
                container.RegisterInstance(typeof(IAuthorizationConfiguration), NakedObjectsRunSettings.AuthorizationConfig(), new ContainerControlledLifetimeManager());
            }
        }
开发者ID:priaonehaha,项目名称:NakedObjectsFramework,代码行数:37,代码来源:UnityConfig.cs

示例2: OnStartup

        protected override void OnStartup(StartupEventArgs e)
        {
            XmlConfigurator.Configure();

            _logger.Info("[START]");
            _logger.Info("setup dependency injection container");
            Container = new UnityContainer();

            _logger.Info("setup database");
            string directory = Environment.GetFolderPath(
                Environment.SpecialFolder.LocalApplicationData);
            _logger.Info("database directory: " + directory);
            _dbContext = new NDatabaseConnector(directory);

            //database registration
            Container.RegisterInstance(typeof (IDataAccessLayer), _dbContext);

            //service registrations
            Container.RegisterType<ICryptographyService, CryptographyService>();
            Container.RegisterType<IDropboxService, DropboxService>();

            //registraions utils
            //only one instance from messenger can exists! (recipient problems..)
            _logger.Info("register messenger instance");
            var messenger = new Messenger();
            Container.RegisterInstance(typeof (IMessenger), messenger);

            _logger.Info("show login view");
            var loginView = Container.Resolve<LoginView>();
            loginView.Show();
        }
开发者ID:wasteland540,项目名称:SecureFileShare,代码行数:31,代码来源:App.xaml.cs

示例3: Boot

        public static ITypeFactory Boot(string loggerName,Assembly asm)
        {
            XmlConfigurator.Configure();
            container = new UnityContainer();

            RegisterKnownTypes(asm);
            RegisterKnownTypes(typeof(ITypeFactory).Assembly);

            container.RegisterInstance<ITypeFactory>(new TypeFactory(container));
            container.RegisterInstance<ILog>(LogManager.GetLogger(loggerName));

            container.RegisterInstance<ICommandRouter>(new CommandRouterImpl());
            factory = container.Resolve<ITypeFactory>();

            factory.Get<ILog>().Info(".=.=.=. " + Assembly.GetExecutingAssembly().GetName().Name + " =.=.=.=");
            factory.Get<ILog>().Info("Version:" + Assembly.GetExecutingAssembly().GetName().Version.ToString());

            string dataPath = ApplicationEnvironment.Instance.DataPath;
            if (!Directory.Exists(dataPath))
            {
                factory.Get<ILog>().Error("L'applicazione non riesce a creare il percorso dati:" + dataPath);
            }
            factory.Get<ILog>().Debug("Data path applicazione:"+dataPath);

            container.AddExtension(new WireImportExports());
            return factory;
        }
开发者ID:mausch,项目名称:NHWorkbench,代码行数:27,代码来源:BootStrap.cs

示例4: RegisterTypes

        /// <summary>Registers the type mappings with the Unity container.</summary>
        /// <param name="container">The unity container to configure.</param>
        /// <remarks>There is no need to register concrete types such as controllers or API controllers (unless you want to 
        /// change the defaults), as Unity allows resolving a concrete type even if it was not previously registered.</remarks>
        public static void RegisterTypes(IUnityContainer container)
        {
            // NOTE: To load from web.config uncomment the line below. Make sure to add a Microsoft.Practices.Unity.Configuration to the using statements.
            // container.LoadConfiguration();
            container.RegisterType<IHtmlString, AnnotationWidget>("AnnotationWidget");

            string repositoryFolder = AppDomain.CurrentDomain.GetData("DataDirectory") + "/";
            var annotator = new AnnotationImageHandler(
               new AnnotationConfig { StoragePath = repositoryFolder }
                //new Data.Json.Repositories.UserRepository(repositoryFolder),
                //new Data.Json.Repositories.DocumentRepository(repositoryFolder),
                //new Data.Json.Repositories.AnnotationRepository(repositoryFolder),
                //new Data.Json.Repositories.AnnotationReplyRepository(repositoryFolder),
                //new Data.Json.Repositories.AnnotationCollaboratorRepository(repositoryFolder)
                );

            container.RegisterInstance(typeof(IUserDataHandler), annotator.GetUserDataHandler());

            #region Instances
            //container.RegisterInstance(typeof (IDocumentDataHandler), new DocumentRepository(repositoryFolder));
            //container.RegisterInstance(typeof(IAnnotationCollaboratorDataHandler), new AnnotationCollaboratorRepository(repositoryFolder));
            //container.RegisterInstance(typeof(IAnnotationReplyDataHandler), new AnnotationReplyRepository(repositoryFolder));
            //container.RegisterInstance(typeof(IAnnotationDataHandler), new AnnotationRepository(repositoryFolder));
            //container.RegisterInstance(typeof(IInputDataHandler), new InputDataHandler(repositoryFolder));
            //container.RegisterInstance(typeof(IFileDataStore), new FileStore(repositoryFolder));
            #endregion Instances
            
            container.RegisterInstance(typeof(AnnotationImageHandler), annotator);
            container.RegisterType<IAnnotationService, AnnotationService>();
            container.RegisterType<IAuthenticationService, AuthenticationService>();
            container.RegisterType<IAnnotationBroadcaster, AnnotationBroadcaster>();
            container.RegisterType<IAnnotationHub, AnnotationHub>();
        }
开发者ID:groupdocs-annotation,项目名称:groupdocs-annotation-net-sample,代码行数:37,代码来源:UnityConfig.cs

示例5: RegistrateTypes

 protected override void RegistrateTypes(IUnityContainer container)
 {
     container.RegisterInstance(container);
     container.RegisterInstance(new ConfigurationManager(Product.Display.AppName, SpecialFolder.ApplicationData));
     container.RegisterType<AppSettings>(
        new InjectionFactory(c => c.Resolve<ConfigurationManager>().GetSection<AppSettings>(AppSettings.SectionKey)));
 }
开发者ID:breslavsky,项目名称:queue,代码行数:7,代码来源:App.xaml.cs

示例6: UpdaterModule

 public UpdaterModule(IUnityContainer container, IRegionManager manager)
 {
     _container = container;
     _regionManager = manager;
     _container.RegisterInstance(_container.Resolve<UpdaterViewModel>());
     _container.RegisterInstance<IEsterViewModel>("updates", _container.Resolve<UpdaterViewModel>());
 }
开发者ID:kib357,项目名称:Ester2,代码行数:7,代码来源:UpdaterModule.cs

示例7: Shell

 public Shell(IUnityContainer container, IEventAggregator evtAggregator)
 {
     InitializeComponent();
     container.RegisterInstance<Panel>("MainRegion", m_MainRegionPanel);
     container.RegisterInstance<Panel>("SecondRegion", m_SecondRegionPanel);
     evtAggregator.GetEvent<ProductSavedEvent>().Subscribe(OnProductSaved,ThreadOption.SubscriberAffinityThread);
 }
开发者ID:ahszn,项目名称:Prism-4-with-WinForms,代码行数:7,代码来源:Shell.cs

示例8: RegisterTypes

        /// <summary>Registers the type mappings with the Unity container.</summary>
        /// <param name="container">The unity container to configure.</param>
        /// <remarks>There is no need to register concrete types such as controllers or API controllers (unless you want to 
        /// change the defaults), as Unity allows resolving a concrete type even if it was not previously registered.</remarks>
        public static void RegisterTypes(IUnityContainer container) {
            // NOTE: To load from web.config uncomment the line below. Make sure to add a Microsoft.Practices.Unity.Configuration to the using statements.
            // container.LoadConfiguration();
            //Standard configuration

            try {

                StandardUnityConfig.RegisterStandardFacetFactories(container);
                StandardUnityConfig.RegisterCoreContainerControlledTypes(container);
                StandardUnityConfig.RegisterCorePerTransactionTypes<PerResolveLifetimeManager>(container);

                // config 
                container.RegisterInstance<IReflectorConfiguration>(NakedObjectsRunSettings.ReflectorConfig(), (new ContainerControlledLifetimeManager()));
                container.RegisterInstance<IEntityObjectStoreConfiguration>(NakedObjectsRunSettings.EntityObjectStoreConfig(), new ContainerControlledLifetimeManager());

                // frameworkFacade
                container.RegisterType<IOidTranslator, OidTranslatorSlashSeparatedTypeAndIds>(new PerResolveLifetimeManager());

                container.RegisterType<IOidStrategy, EntityOidStrategy>(new PerResolveLifetimeManager());
                container.RegisterType<IStringHasher, SimpleStringHasher>(new PerResolveLifetimeManager());
                container.RegisterType<IFrameworkFacade, FrameworkFacade>(new PerResolveLifetimeManager());

                //Externals
                container.RegisterType<IPrincipal>(new InjectionFactory(c => HttpContext.Current.User));
            }
            catch (Exception e) {
                Logger.Error($"Error on Unity RegisterTypes : {e.Message}");
                throw;
            }

        }
开发者ID:NakedObjectsGroup,项目名称:NakedObjectsFramework,代码行数:35,代码来源:UnityConfig.cs

示例9: Arrange

        protected override void Arrange()
        {
            base.Arrange();

            UIServiceMock = new Mock<IUIServiceWpf>(MockBehavior.Strict);

            Container = new UnityContainer();

            Container.RegisterType<AssemblyLocator, BinPathProbingAssemblyLocator>(new ContainerControlledLifetimeManager());
            Container.RegisterType<ConfigurationSectionLocator, AssemblyAttributeSectionLocator>(new ContainerControlledLifetimeManager());
            Container.RegisterType<AnnotationService>(new ContainerControlledLifetimeManager());
            Container.RegisterType<ElementLookup>(new ContainerControlledLifetimeManager());
            Container.RegisterType<DiscoverDerivedConfigurationTypesService>(new ContainerControlledLifetimeManager());
            Container.RegisterType<ConfigurationSourceModel>(new ContainerControlledLifetimeManager());
            Container.RegisterType<ConfigurationSourceDependency>(new ContainerControlledLifetimeManager());
            Container.RegisterType<AnnotationService>(new ContainerControlledLifetimeManager());
            Container.RegisterType(typeof(IResolver<>), typeof(GenericResolver<>));
            Container.RegisterInstance<IServiceProvider>(new ContainerProvider(Container));
            Container.RegisterInstance<IUIServiceWpf>(UIServiceMock.Object);
            Container.RegisterType<SaveOperation>(new ContainerControlledLifetimeManager());

            Container.RegisterType<IApplicationModel, ApplicationViewModel>(new ContainerControlledLifetimeManager());

            AnnotationService annotationService = Container.Resolve<AnnotationService>();
            annotationService.DiscoverSubstituteTypesFromAssemblies();
        }
开发者ID:jmeckley,项目名称:Enterprise-Library-5.0,代码行数:26,代码来源:ContainerContext.cs

示例10: GetInstance

        public static IUnityContainer GetInstance()
        {
            if (container == null)
            {
                container = new UnityContainer();

                /// RegisterType 创建的实例默认不是单例模式的实例 LifetimeManager 这个可以用来把它设置成单例模式
                //// 泛型参数方式
                //// 注册接口映射  满足条件:IUnityContainer RegisterType<TFrom, TTo>() where TTo : TFrom
                //container.RegisterType<ILogger, DatabaseLogger>();

                //// 注册接口映射 用下面这种方式,带参数的,就要Microsoft.Practices.ObjectBuilder2.dll
                //// 因为 方法:IUnityContainer RegisterType(Type t, params InjectionMember[] injectionMembers)中的 参数 InjectionMember
                //// 有用到 Microsoft.Practices.ObjectBuilder2.dll 中的接口,所以添加对Microsoft.Practices.ObjectBuilder2.dll的引用
                //container.RegisterType<ILogger, FlatFileLogger>("FlatFileLogger");

                // // 参数方式
                //container.RegisterType(typeof(ILogger), typeof(DatabaseLogger));
                //container.RegisterType(typeof(ILogger), typeof(FlatFileLogger), "FlatFileLogger");

                /// RegisterInstance 创建的实例默认是单例模式的,但也要防止这个创建实例的单例创建
                container.RegisterInstance<ILogger>(new DatabaseLogger());
                container.RegisterInstance<ILogger>("FlatFileLogger",new FlatFileLogger());

            }

            return container;
        }
开发者ID:zjk537,项目名称:ModelCollect,代码行数:28,代码来源:IocUnityManager.cs

示例11: SetupContainer

        public static void SetupContainer()
        {
            // Create User
            var user = new CurrentUser() { Username = "GDP1", LabCode = "EUHAWE3" };

            // Create Logger
            var logger = new LoggerConfiguration()
              .Enrich.FromLogContext()
                .MinimumLevel.Warning()                 // Set MinimumLevel of Warning
                .WriteTo.Seq("http://localhost:5341")
              .CreateLogger();

            unityContainer = new UnityContainer();

            // Register User
            unityContainer.RegisterInstance<ICurrentUser>(user);

            // Add Interception Extension
            unityContainer.AddNewExtension<Microsoft.Practices.Unity.InterceptionExtension.Interception>();

            //Register Logger Instance
            unityContainer.RegisterInstance<ILogger>(logger);

            unityContainer.RegisterType<ISamRepository, SamRepository>()
                .Configure<Microsoft.Practices.Unity.InterceptionExtension.Interception>()
                .SetInterceptorFor<ISamRepository>(
                    new InterfaceInterceptor());
        }
开发者ID:dimitrispaxinos,项目名称:SerilogAndSeqSamples,代码行数:28,代码来源:Program.cs

示例12: RegisterTypes

        /// <summary>Registers the type mappings with the Unity container.</summary>
        /// <param name="container">The unity container to configure.</param>
        /// <remarks>There is no need to register concrete types such as controllers or API controllers (unless you want to 
        /// change the defaults), as Unity allows resolving a concrete type even if it was not previously registered.</remarks>
        public static void RegisterTypes(IUnityContainer container) {
            // NOTE: To load from web.config uncomment the line below. Make sure to add a Microsoft.Practices.Unity.Configuration to the using statements.
            // container.LoadConfiguration();
            //Standard configuration

            StandardUnityConfig.RegisterStandardFacetFactories(container);
            StandardUnityConfig.RegisterCoreContainerControlledTypes(container);
            StandardUnityConfig.RegisterCorePerTransactionTypes<HierarchicalLifetimeManager>(container);

            // add custom notnavigable factory

            UnityConfigHelpers.RegisterFacetFactory(typeof(AWNotNavigableFacetFactory), container, 1000);
            UnityConfigHelpers.RegisterFacetFactory(typeof(AWNotCountedAnnotationFacetFactory), container, 1001);

            // config 
            container.RegisterInstance<IReflectorConfiguration>(NakedObjectsRunSettings.ReflectorConfig(), (new ContainerControlledLifetimeManager()));
            container.RegisterInstance<IEntityObjectStoreConfiguration>(NakedObjectsRunSettings.EntityObjectStoreConfig(), new ContainerControlledLifetimeManager());

            // surface
            container.RegisterType<IOidTranslator, OidTranslatorSlashSeparatedTypeAndIds>(new HierarchicalLifetimeManager());

            container.RegisterType<IOidStrategy, EntityOidStrategy>(new HierarchicalLifetimeManager());
            container.RegisterType<IStringHasher, SimpleStringHasher>(new HierarchicalLifetimeManager());
            container.RegisterType<IFrameworkFacade, FrameworkFacade>(new HierarchicalLifetimeManager());

            //Externals
            container.RegisterType<IPrincipal>(new InjectionFactory(c => HttpContext.Current.User));
        }
开发者ID:NakedObjectsGroup,项目名称:NakedObjectsFramework,代码行数:32,代码来源:UnityConfig.cs

示例13: RegisterTypes

        public static void RegisterTypes(IUnityContainer container)
        {
            var hierarchy = (Hierarchy)LogManager.GetRepository();
            hierarchy.Root.RemoveAllAppenders();

            hierarchy.Root.Level = Level.Debug;
            hierarchy.RaiseConfigurationChanged(EventArgs.Empty);

            FileAppender fileAppender = new RollingFileAppender();
            fileAppender.AppendToFile = true;
            fileAppender.LockingModel = new FileAppender.MinimalLock();
            fileAppender.File = HttpContext.Current.Server.MapPath("~/TestHarness1.log.txt");
            var patternLayout = new PatternLayout { ConversionPattern = "%d [%2%t] %-5p [%-10c]   %m%n%n" };
            patternLayout.ActivateOptions();

            fileAppender.Layout = patternLayout;
            fileAppender.ActivateOptions();

            BasicConfigurator.Configure(fileAppender);

            var logger = LogManager.GetLogger(typeof(IServiceBus));

            container.RegisterInstance<ILog>(logger, new ContainerControlledLifetimeManager());

            var ftpClient = new FtpQueueClient();
            ftpClient.ConnectAsync(new Uri("ftp://ftp.jdibble.co.uk/site1/Personal/service-bus-ftp/queue"), new NetworkCredential("jdibble-001", "jli798ik")).Wait();

            container.RegisterInstance<IFtpQueueClient>(ftpClient, new ContainerControlledLifetimeManager());

            container.RegisterType<IQueueManager, FtpQueueManager>(new ContainerControlledLifetimeManager());

            container.RegisterType<SharedMessageHandler>();

            var messageDictionary = new MessageTypeDictionary
                                    {
                                        { ServiceBus.Messaging.MessageExtensions.MessageTypeSignature<SharedMessage>(), typeof(SharedMessage) },
                                        { ServiceBus.Messaging.MessageExtensions.MessageTypeSignature<NonSharedMessage>(), typeof(NonSharedMessage) },
                                        { ServiceBus.Messaging.MessageExtensions.MessageTypeSignature<SharedEvent>(), typeof(SharedEvent) }
                                    };

            container.RegisterInstance<IMessageSerialiser>(new JsonMessageSerialiser(messageDictionary), new ContainerControlledLifetimeManager());

            var serviceBus =
                ServiceBusBuilder.Configure()
                    .WithLogger(container.Resolve<ILog>())
                    .WithHostAddress(new Uri("http://servicebus-ftp.jdibble.co.uk"))
                    .WithHttpTransport(new JsonMessageSerialiser(messageDictionary))
                    .AsMvcServiceBus(RouteTable.Routes, container.Resolve<IQueueManager>())
                    .Build()
                        .WithMessageHandler(container.Resolve<SharedMessageHandler>())
                        .Subscribe(container.Resolve<SharedEventHandler>())
                        .WithPeerAsync(new Peer(new Uri("http://servicebus-ftp2.jdibble.co.uk"))).Result;

            serviceBus.WithPeerAsync(new Peer(new Uri("http://servicebus.jdibble.co.uk")));
            serviceBus.WithPeerAsync(new Peer(new Uri("http://servicebus2.jdibble.co.uk")));

            container.RegisterInstance(serviceBus, new ContainerControlledLifetimeManager());

            container.RegisterType<ServiceBusHub>(new ContainerControlledLifetimeManager());
        }
开发者ID:dibble-james,项目名称:ServiceBus,代码行数:60,代码来源:Bootstrapper.cs

示例14: Container

 private Container() 
 {
     unityContainer = new UnityContainer();
     unityContainer.RegisterInstance<UsersService>(new UsersService());
     unityContainer.RegisterInstance<LocationsService>(new LocationsService());
     unityContainer.RegisterInstance<ReferenceData.DAL.Services.SubdivisionService>(new ReferenceData.DAL.Services.SubdivisionService());
     unityContainer.RegisterInstance<CountriesService>(new CountriesService());
 }
开发者ID:OleksiiYatsenko,项目名称:ReferenceData,代码行数:8,代码来源:Container.cs

示例15: UnityServiceRegistry

 private UnityServiceRegistry(UnityServiceRegistry parent)
 {
     _parent = parent;
     _container = _parent != null ? _parent._container.CreateChildContainer() : new UnityContainer();
     _container.RegisterInstance<IServiceRegistry>(this);
     _locator = new UnityServiceLocator(_container, _parent != null ? _parent._locator : null);
     _container.RegisterInstance<IServiceLocator>(Locator);
 }
开发者ID:ChristianEder,项目名称:Cherry,代码行数:8,代码来源:UnityServiceRegistry.cs


注:本文中的IUnityContainer.RegisterInstance方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。