本文整理汇总了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);
}
}
}
示例2: RegisterThrowsExceptionIfRegistrationAlreadyExists
public void RegisterThrowsExceptionIfRegistrationAlreadyExists()
{
using (var container = new IocContainer())
{
container.Register<IFoo>(c => new Foo1());
container.Register<IFoo>(c => new Foo2());
}
}
示例3: InitContainer
public static IocContainer InitContainer()
{
var container = new IocContainer();
container.Register<AboutController>();
container.Register<HomeController>();
return container;
}
示例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>();
}
示例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();
}
}
示例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");
}
}
示例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");
}
}
示例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();
}
示例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();
}
}
示例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();
}
示例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);
}
示例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);
}
}
示例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);
}
}
示例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);
}
}
示例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);
}
}