本文整理汇总了C#中Container.RegisterPerWebRequest方法的典型用法代码示例。如果您正苦于以下问题:C# Container.RegisterPerWebRequest方法的具体用法?C# Container.RegisterPerWebRequest怎么用?C# Container.RegisterPerWebRequest使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Container
的用法示例。
在下文中一共展示了Container.RegisterPerWebRequest方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: RegisterPerWebRequest_CalledMultipleTimes_Succeeds
public void RegisterPerWebRequest_CalledMultipleTimes_Succeeds()
{
// Arrange
var container = new Container();
// Act
container.RegisterPerWebRequest<ConcreteCommand>();
container.RegisterPerWebRequest<ICommand>(() => new ConcreteCommand());
}
示例2: GetInstance_WithNoHttpContext_FailsWithExpectedException
public void GetInstance_WithNoHttpContext_FailsWithExpectedException()
{
// Arrange
Assert.IsNull(HttpContext.Current, "Test setup failed.");
var container = new Container();
container.RegisterPerWebRequest<ICommand, ConcreteCommand>();
try
{
// Act
container.GetInstance<ICommand>();
// Assert
Assert.Fail("Exception expected");
}
catch (ActivationException ex)
{
Assert.IsTrue(ex.Message.Contains(typeof(ICommand).Name), "Actual: " + ex.Message);
Assert.IsTrue(
ex.Message.Contains("the instance is requested outside the context of a Web Request"),
"Actual: " + ex.Message);
}
}
示例3: RegisterPerWebRequest_CalledASingleTime_Succeeds
public void RegisterPerWebRequest_CalledASingleTime_Succeeds()
{
// Arrange
var container = new Container();
// Act
container.RegisterPerWebRequest<ConcreteCommand>();
}
示例4: Verify_WithNoHttpContext_Succeeds
public void Verify_WithNoHttpContext_Succeeds()
{
// Arrange
Assert.IsNull(HttpContext.Current, "Test setup failed.");
var container = new Container();
container.RegisterPerWebRequest<ConcreteCommand>();
// Act
container.Verify();
}
示例5: GetInstance_WithinHttpContext_ReturnsInstanceOfExpectedType
public void GetInstance_WithinHttpContext_ReturnsInstanceOfExpectedType()
{
// Arrange
var container = new Container();
container.RegisterPerWebRequest<ICommand, ConcreteCommand>();
using (new HttpContextScope())
{
// Act
var actualInstance = container.GetInstance<ICommand>();
// Assert
AssertThat.IsInstanceOfType(typeof(ConcreteCommand), actualInstance);
}
}
示例6: GetInstance_CalledMultipleTimesWithinSingleLifetimeScope_ReturnsASingleInstance
public void GetInstance_CalledMultipleTimesWithinSingleLifetimeScope_ReturnsASingleInstance()
{
// Arrange
var container = new Container();
container.RegisterPerWebRequest<ICommand, ConcreteCommand>();
using (new HttpContextScope())
{
// Act
var firstInstance = container.GetInstance<ICommand>();
var secondInstance = container.GetInstance<ICommand>();
// Assert
Assert.IsTrue(object.ReferenceEquals(firstInstance, secondInstance));
}
}
示例7: Container
public void GetInstance_CalledTwiceInOneScopeForDecoratedWebRequestInstance2_WrapsATransientDecoratorAroundAWebRequestInstance()
{
// Arrange
var container = new Container();
// Same as previous test, but now with RegisterDecorator called first.
container.RegisterDecorator(typeof(ICommand), typeof(CommandDecorator));
container.RegisterPerWebRequest<ICommand, ConcreteCommand>();
using (new HttpContextScope())
{
// Act
var decorator1 = (CommandDecorator)container.GetInstance<ICommand>();
var decorator2 = (CommandDecorator)container.GetInstance<ICommand>();
// Assert
Assert.IsFalse(object.ReferenceEquals(decorator1, decorator2),
"The decorator should be transient but seems to have a scoped lifetime.");
Assert.IsTrue(object.ReferenceEquals(decorator1.DecoratedInstance, decorator2.DecoratedInstance),
"The decorated instance should be scoped per lifetime. It seems to be transient.");
}
}
示例8: GetInstance_OnDecoratedLifetimeScopedInstance_WrapsTheInstanceWithTheDecorator
public void GetInstance_OnDecoratedLifetimeScopedInstance_WrapsTheInstanceWithTheDecorator()
{
// Arrange
var container = new Container();
container.RegisterPerWebRequest<ICommand, ConcreteCommand>();
container.RegisterDecorator(typeof(ICommand), typeof(CommandDecorator));
using (new HttpContextScope())
{
// Act
ICommand instance = container.GetInstance<ICommand>();
// Assert
AssertThat.IsInstanceOfType(typeof(CommandDecorator), instance);
var decorator = (CommandDecorator)instance;
AssertThat.IsInstanceOfType(typeof(ConcreteCommand), decorator.DecoratedInstance);
}
}
示例9: RegisterPerWebRequest_WithDisposal_EnsuresInstanceGetDisposedAfterRequestEnds
public void RegisterPerWebRequest_WithDisposal_EnsuresInstanceGetDisposedAfterRequestEnds()
{
// Arrange
var container = new Container();
container.RegisterPerWebRequest<DisposableCommand>();
DisposableCommand command;
// Act
using (new HttpContextScope())
{
command = container.GetInstance<DisposableCommand>();
}
// Assert
Assert.IsTrue(command.HasBeenDisposed, "The instance was expected to be disposed.");
}
示例10: RegisterPerWebRequest_CalledAfterInitialization_ThrowsExpectedException
public void RegisterPerWebRequest_CalledAfterInitialization_ThrowsExpectedException()
{
// Arrange
var container = new Container();
// This locks the container.
container.GetInstance<ConcreteCommand>();
try
{
// Act
container.RegisterPerWebRequest<ICommand, ConcreteCommand>();
// Assert
Assert.Fail("Exception expected.");
}
catch (InvalidOperationException ex)
{
Assert.IsTrue(ex.Message.Contains("The container can't be changed"),
"Actual: " + ex.Message);
}
}
示例11: GetInstance_CalledMultipleTimesOnAPerWebRequestServiceWithinASingleScope_DisposesThatInstanceOnce
public void GetInstance_CalledMultipleTimesOnAPerWebRequestServiceWithinASingleScope_DisposesThatInstanceOnce()
{
// Arrange
var container = new Container();
container.RegisterPerWebRequest<DisposableCommand>();
DisposableCommand command;
// Act
using (new HttpContextScope())
{
command = container.GetInstance<DisposableCommand>();
container.GetInstance<DisposableCommand>();
container.GetInstance<DisposableCommand>();
}
// Assert
Assert.AreEqual(1, command.DisposeCount, "Dispose should be called exactly once.");
}
示例12: GetInstance_WithinAWebRequest_NeverDisposesASingleton
public void GetInstance_WithinAWebRequest_NeverDisposesASingleton()
{
// Arrange
var container = new Container();
container.Register<DisposableCommand>(Lifestyle.Singleton);
container.RegisterPerWebRequest<IDisposable, DisposableCommand>();
DisposableCommand singleton;
// Act
using (new HttpContextScope())
{
singleton = container.GetInstance<DisposableCommand>();
}
// Assert
Assert.IsFalse(singleton.HasBeenDisposed, "Singletons should not be disposed.");
}
示例13: GetInstance_OnPerWebRequesstInstance_WillNotBeDisposedDuringTheRequest
public void GetInstance_OnPerWebRequesstInstance_WillNotBeDisposedDuringTheRequest()
{
// Arrange
var container = new Container();
container.RegisterPerWebRequest<DisposableCommand>();
// Act
using (new HttpContextScope())
{
var command = container.GetInstance<DisposableCommand>();
// Assert
Assert.IsFalse(command.HasBeenDisposed, "The instance should not be disposed inside the scope.");
}
}
示例14: RegisterChocolateySpecific
private void RegisterChocolateySpecific(Container container)
{
container.RegisterPerWebRequest<IUserSiteProfilesService, UserSiteProfilesService>();
container.RegisterPerWebRequest<IEntityRepository<UserSiteProfile>, EntityRepository<UserSiteProfile>>();
container.Register<IImageFileService, ImageFileService>(Lifestyle.Singleton);
container.RegisterPerWebRequest<IEntityRepository<ScanResult>, EntityRepository<ScanResult>>();
container.RegisterPerWebRequest<IScanService, ScanService>();
}
示例15: GetInstance_PerWebRequestFuncInstanceWithInitializer_CallsInitializerOncePerWebRequest
public void GetInstance_PerWebRequestFuncInstanceWithInitializer_CallsInitializerOncePerWebRequest()
{
// Arrange
int callCount = 0;
var container = new Container();
container.RegisterPerWebRequest<ICommand>(() => new ConcreteCommand());
container.RegisterInitializer<ICommand>(command => { callCount++; });
using (new HttpContextScope())
{
// Act
container.GetInstance<ICommand>();
container.GetInstance<ICommand>();
}
// Assert
Assert.AreEqual(1, callCount, "The initializer for ICommand is expected to get fired once.");
}