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


C# IocContainer.Register方法代码示例

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


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

示例1: ContainerScopeTryResolveWorks

		public void ContainerScopeTryResolveWorks()
		{
			using (var container = new IocContainer())
			{
				// Register
				container.Register<IFoo, Foo1>();
				container.Register<IFoo, Foo2>("Key1");
				container.Register<IBar, Bar1>();

				using (var scope = container.GetScope())
				{
					IFoo instance1, instance2;
					var result1 = scope.TryResolve<IFoo>(out instance1);
					var result2 = scope.TryResolve<IFoo>(out instance2);

					Assert.AreSame(instance1, instance2);

					IFooBar instance3, instance4;
					var result3 = scope.TryResolve<IFooBar>(out instance3);
					var result4 = scope.TryResolve<IFooBar>(out instance4);

					Assert.AreSame(instance3, instance4);
				}
			}
		}
开发者ID:Kingefosa,项目名称:Dynamo.IoC,代码行数:25,代码来源:ResolverScopeTest.cs

示例2: RegisterThrowsExceptionIfRegistrationAlreadyExists

 public void RegisterThrowsExceptionIfRegistrationAlreadyExists()
 {
     using (var container = new IocContainer())
     {
         container.Register<IFoo>(c => new Foo1());
         container.Register<IFoo>(c => new Foo2());
     }
 }
开发者ID:GeorgeR,项目名称:DynamoIOC,代码行数:8,代码来源:RegisterTest.cs

示例3: InitContainer

        public static IocContainer InitContainer()
        {
            var container = new IocContainer();

            container.Register<AboutController>();
            container.Register<HomeController>();

            return container;
        }
开发者ID:sandbrock,项目名称:towatioc,代码行数:9,代码来源:ContainerConfig.cs

示例4: RegisterDatabase

        private void RegisterDatabase(IocContainer container)
        {
            SterlingEngine engine =
                new SterlingEngine();
            engine.Activate();

            container.RegisterInstance<Domain.Database>(engine.SterlingDatabase.RegisterDatabase<Domain.Database>(new FileSystemDriver()) as Domain.Database);
            container.Register<Domain.Db.ITestQuery, Domain.Db.TestQuery>();
            container.Register<Domain.Db.ISubjectQuery, Domain.Db.SubjectQuery>();
        }
开发者ID:LukeForder,项目名称:TestIt,代码行数:10,代码来源:Bootstrapper.cs

示例5: VerifyThrowsExceptionWhenMissingRegistration

		public void VerifyThrowsExceptionWhenMissingRegistration()
		{
			using (var container = new IocContainer())
			{
				container.Register<IFoo>(c => new Foo1());
				container.Register<IFooBar>(y => new FooBar((IFoo)y.Resolve(typeof(IFoo)), (IBar)y.Resolve(typeof(IBar))));

				container.Verify();
			}
		}
开发者ID:Kingefosa,项目名称:Dynamo.IoC,代码行数:10,代码来源:VerifyTest.cs

示例6: RegisterAutoUsingKey

		public void RegisterAutoUsingKey()
		{
			using (var container = new IocContainer())
			{
				container.Register(typeof(IFoo), typeof(Foo1));
				container.Register(typeof(IBar), typeof(Bar1));

				var reg = container.Register(typeof(IFooBar), typeof(FooBar), "TheKey", compileMode: CompileMode.Delegate);
				TestRegister(container, reg, "TheKey");
			}
		}
开发者ID:Kingefosa,项目名称:Dynamo.IoC,代码行数:11,代码来源:RegisterAutoTest.cs

示例7: RegisterAutoGenericUsingKey

		public void RegisterAutoGenericUsingKey()
		{
			using (var container = new IocContainer())
			{
				container.Register<IFoo, Foo1>();
				container.Register<IBar, Bar1>();

				var reg = container.Register<IFooBar, FooBar>("TheKey", compileMode: CompileMode.Delegate);
				TestRegister(container, reg, "TheKey");
			}
		}
开发者ID:Kingefosa,项目名称:Dynamo.IoC,代码行数:11,代码来源:RegisterAutoTest.cs

示例8: Main

        private static void Main()
        {
            var container = new IocContainer();
            container.Register<SonyWalkman, SonyWalkman>();
            container.Register<ITapeCassette, MyPoliceTape>();

            var walkman = container.Resolve<SonyWalkman>();

            Console.WriteLine(walkman.Play());

            Console.ReadLine();
        }
开发者ID:leonvanbokhorst,项目名称:IocContainer,代码行数:12,代码来源:Program.cs

示例9: GetAllGenericThrowsExceptionIfTypeIsNotRegistered

        public void GetAllGenericThrowsExceptionIfTypeIsNotRegistered()
        {
            using (var container = new IocContainer())
            {
                var foo1 = container.Register<IFoo>(c => new Foo1());
                var foo2 = container.Register<IFoo>("Foo", c => new Foo2());

                var result = container.Index.GetAll<IBar>();

                // Doesnt throw exception before it is enumerated because it uses yield return - OK ?
                var test = result.Count();
            }
        }
开发者ID:thanhvc,项目名称:DynamoIOC,代码行数:13,代码来源:GetAllTest.cs

示例10: Main

        static void Main()
        {
            var iocContainer = new IocContainer();

            iocContainer.Register<Shooter, Shooter>();
            iocContainer.Register<IFirearm, Handgun>();
            // iocContainer.Register<IFirearm, Rifle>();

            var shooter = iocContainer.Resolve<Shooter>();
            shooter.Shoot();

            Console.Read();
        }
开发者ID:jalfaroe,项目名称:MyIocContainer,代码行数:13,代码来源:Program.cs

示例11: Example4

      public Example4()
      {
         IIocContainer container = new IocContainer();
         container.Register<IMyExample4, MyExample4>();
         container.Register<IMyExample4a, MyExample4a>();
         container.Register<IMyExample4b, MyExample4b>();

         // constructor injection and property injection
         IMyExample4 temp = container.Resolve<IMyExample4>();
         
         
         Console.WriteLine("Example 4 : {0} , {1}" ,temp.Text, temp.Dates.Date);
      }
开发者ID:rogerdtaylor,项目名称:KeyStone,代码行数:13,代码来源:Example4.cs

示例12: CachedLifetimeReturnsDifferentInstanceIfSlidingTimeoutHaveExpired

        public void CachedLifetimeReturnsDifferentInstanceIfSlidingTimeoutHaveExpired()
        {
            using (var container = new IocContainer())
            {
                // Expires When not Accessed For More than a specific time periode.
                var lifetime = new CachedLifetime(new TimeSpan(0, 0, 1));

                container.Register<IFoo>(c => new Foo1()).SetLifetime(lifetime);

                var result1 = container.Resolve<IFoo>();
                var result2 = container.Resolve<IFoo>();

                // Simulate expiry
                Thread.Sleep(2000);

                var result3 = container.Resolve<IFoo>();

                // Assert
                Assert.IsNotNull(result1);
                Assert.IsNotNull(result2);
                Assert.IsNotNull(result3);

                Assert.AreSame(result1, result2);
                Assert.AreNotSame(result1, result3);
            }
        }
开发者ID:thanhvc,项目名称:DynamoIOC,代码行数:26,代码来源:CachedLifetimeTest.cs

示例13: RequestLifetimeReturnsSameInstanceForSameRequest

        public void RequestLifetimeReturnsSameInstanceForSameRequest()
        {
            // Arrange
            using (var container = new IocContainer())
            {
                var context1 = new FakeHttpContext("Http://fakeUrl1.com");
                var context2 = new FakeHttpContext("Http://fakeUrl2.com");

                HttpContextBase currentContext = null;

                var lifetime = new RequestLifetime(() => currentContext);		// better solution for injecting HttpContext ?

                container.Register<IFoo>(c => new Foo1()).SetLifetime(lifetime);

                // Act
                currentContext = context1;

                var result1 = container.Resolve<IFoo>();
                var result2 = container.Resolve<IFoo>();

                currentContext = context2;

                var result3 = container.Resolve<IFoo>();

                // Assert
                Assert.IsNotNull(result1);
                Assert.IsNotNull(result2);
                Assert.IsNotNull(result3);

                Assert.AreSame(result1, result2);
                Assert.AreNotSame(result1, result3);
            }
        }
开发者ID:GeorgeR,项目名称:DynamoIOC,代码行数:33,代码来源:RequestLifetimeTest.cs

示例14: CachedLifetimeReturnsDifferentInstanceIfCacheExpired

		public void CachedLifetimeReturnsDifferentInstanceIfCacheExpired()
		{
			using (var container = new IocContainer())
			{
				var policy = new CacheItemPolicy()
				{
					SlidingExpiration = new TimeSpan(0, 0, 1)
				};

				container.Register<IFoo>(c => new Foo1()).WithCachedLifetime(policy);

				var result1 = container.Resolve<IFoo>();
				var result2 = container.Resolve<IFoo>();

				Thread.Sleep(1500);

				var result3 = container.Resolve<IFoo>();

				// Assert
				Assert.IsNotNull(result1);
				Assert.IsNotNull(result2);
				Assert.IsNotNull(result3);

				Assert.AreSame(result1, result2);
				Assert.AreNotSame(result1, result3);
			}
		}
开发者ID:Kingefosa,项目名称:Dynamo.IoC,代码行数:27,代码来源:CachedLifetimeTest.cs

示例15: TryGetAllReturnsAnEmptyEnumerableIfTypeIsNotRegistered

        public void TryGetAllReturnsAnEmptyEnumerableIfTypeIsNotRegistered()
        {
            using (var container = new IocContainer())
            {
                // Arrange
                var foo1 = container.Register<IFoo>(c => new Foo1());
                var foo2 = container.Register<IFoo>("Foo", c => new Foo2());

                // Act
                var result = container.Index.TryGetAll(typeof(IBar));

                // Assert
                Assert.IsNotNull(result);
                Assert.IsInstanceOfType(result, typeof(IEnumerable<IRegistration>));
                Assert.IsTrue(result.Count() == 0);
            }
        }
开发者ID:thanhvc,项目名称:DynamoIOC,代码行数:17,代码来源:TryGetAllTest.cs


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