本文整理汇总了C#中SimpleInjector.Container.RegisterWithContext方法的典型用法代码示例。如果您正苦于以下问题:C# Container.RegisterWithContext方法的具体用法?C# Container.RegisterWithContext怎么用?C# Container.RegisterWithContext使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SimpleInjector.Container
的用法示例。
在下文中一共展示了Container.RegisterWithContext方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: RegisterWithNullContextFactoryThrowsArgumentNullException
public void RegisterWithNullContextFactoryThrowsArgumentNullException()
{
var container = new Container();
var ex = Assert.Throws<ArgumentNullException>(() => container.RegisterWithContext<ILog>(null));
Assert.Equal("contextBasedFactory", ex.ParamName);
}
示例2: RegisterWithContextProvidesRootContextOnResolve
public void RegisterWithContextProvidesRootContextOnResolve()
{
var container = new Container();
container.RegisterWithContext<ILog>(dependencyContext =>
{
return new Logger(dependencyContext.ImplementationType);
});
var logger = container.GetInstance<ILog>();
Assert.NotNull(logger);
Assert.Null(logger.Type);
}
示例3: RegisterWithContextProvidesDependencyContextOnResolveForDependentType
public void RegisterWithContextProvidesDependencyContextOnResolveForDependentType()
{
var container = new Container();
container.RegisterWithContext<ILog>(dependencyContext =>
{
return new Logger(dependencyContext.ImplementationType);
});
var controller = container.GetInstance<Controller>();
Assert.NotNull(controller);
Assert.NotNull(controller.Logger);
Assert.Equal(controller.GetType(), controller.Logger.Type);
}
示例4: Application_Start
protected void Application_Start(object sender, EventArgs e)
{
var container = new Container();
//Package registration;
container.RegisterPackages();
//ILogger registration;
container.RegisterWithContext<ILogger>(context => LogManager.GetLogger(context.ImplementationType.Name));
//WCF integration;
SimpleInjectorServiceHostFactory.SetContainer(container);
//Service initialisation;
var initialiser = container.GetInstance<IInitialiser>();
initialiser.Initialise();
}
示例5: InitContainer
internal void InitContainer()
{
var assembly = typeof(IOptionsDialogWatcher).Assembly;
var exportedTypes = assembly.GetExportedTypes();
var classes = exportedTypes.Where(t => t.IsClass);
var interfaces = exportedTypes.Where(t => t.IsInterface);
var registrations = from @interface in interfaces
let types = classes.Where(@interface.IsAssignableFrom)
where types.Count() == 1
select new
{
Interface = @interface,
Implementation = types.First()
};
_container = new Container();
_container.RegisterAll<IWindowModifier>(classes.Where(typeof(IWindowModifier).IsAssignableFrom));
_container.RegisterWithContext(CyclicWorkerContexts);
registrations.ToList().ForEach(r => _container.Register(r.Interface, r.Implementation));
}